Browse Source

fixed bug

lateri 4 years ago
parent
commit
5611a3a6a4
55 changed files with 1756 additions and 11 deletions
  1. 19 3
      jingqu.html
  2. 1 1
      jingqu.min.js
  3. 1 1
      yaoli.html
  4. 119 0
      yaoli/jingqu.html
  5. 1 0
      yaoli/jingqu.min.js
  6. 885 0
      yaoli/js/tvSysBtnBind.v2.1.js
  7. BIN
      yaoli/yaoimages/auto_rotation.png
  8. BIN
      yaoli/yaoimages/auto_rotation@2x.png
  9. BIN
      yaoli/yaoimages/auto_rotation_click.png
  10. BIN
      yaoli/yaoimages/auto_rotation_click@2x.png
  11. BIN
      yaoli/yaoimages/bg1280.jpg
  12. BIN
      yaoli/yaoimages/direction.png
  13. BIN
      yaoli/yaoimages/direction_board.png
  14. BIN
      yaoli/yaoimages/direction_board@2.png
  15. BIN
      yaoli/yaoimages/direction_bottom.png
  16. BIN
      yaoli/yaoimages/direction_bottom@2x.png
  17. BIN
      yaoli/yaoimages/direction_bottom_disable.png
  18. BIN
      yaoli/yaoimages/direction_bottom_disable@2x.png
  19. BIN
      yaoli/yaoimages/direction_left.png
  20. BIN
      yaoli/yaoimages/direction_left@2x.png
  21. BIN
      yaoli/yaoimages/direction_left_disable.png
  22. BIN
      yaoli/yaoimages/direction_left_disable@2x.png
  23. BIN
      yaoli/yaoimages/direction_right.png
  24. BIN
      yaoli/yaoimages/direction_right@2x.png
  25. BIN
      yaoli/yaoimages/direction_right_disable.png
  26. BIN
      yaoli/yaoimages/direction_right_disable@2x.png
  27. BIN
      yaoli/yaoimages/direction_top.png
  28. BIN
      yaoli/yaoimages/direction_top@2x.png
  29. BIN
      yaoli/yaoimages/direction_top_disable.png
  30. BIN
      yaoli/yaoimages/direction_top_disable@2x.png
  31. BIN
      yaoli/yaoimages/direction_walk.png
  32. BIN
      yaoli/yaoimages/direction_walk@2x.png
  33. BIN
      yaoli/yaoimages/play4.png
  34. BIN
      yaoli/yaoimages/play4@2x.png
  35. BIN
      yaoli/yaoimages/play4@3x.png
  36. BIN
      yaoli/yaoimages/play_click.png
  37. BIN
      yaoli/yaoimages/play_click@2x.png
  38. BIN
      yaoli/yaoimages/play_click@3x.png
  39. BIN
      yaoli/yaoimages/rang_1201.png
  40. BIN
      yaoli/yaoimages/rang_1201@2x.png
  41. BIN
      yaoli/yaoimages/rangle.png
  42. BIN
      yaoli/yaoimages/rangle@2x.png
  43. BIN
      yaoli/yaoimages/yao0.png
  44. BIN
      yaoli/yaoimages/zoomin.png
  45. BIN
      yaoli/yaoimages/zoomin@2x.png
  46. BIN
      yaoli/yaoimages/zoomin_click.png
  47. BIN
      yaoli/yaoimages/zoomin_click@2x.png
  48. BIN
      yaoli/yaoimages/zoomout.png
  49. BIN
      yaoli/yaoimages/zoomout@2x.png
  50. BIN
      yaoli/yaoimages/zoomout_click.png
  51. BIN
      yaoli/yaoimages/zoomout_click@2x.png
  52. 125 0
      yaoli/yaoli.html
  53. 1 0
      yaoli/yaoli.min.js
  54. 16 6
      yaolistyle.css
  55. 588 0
      yaostyle.css

+ 19 - 3
jingqu.html

@@ -7,7 +7,7 @@
     <script src="./js/tvSysBtnBind.v2.1.js"></script>
 
     <meta charset="utf-8">
-    <link rel="stylesheet" href="yaolistyle.css">
+    <link rel="stylesheet" href="yaostyle.css">
 
     <style>
         #debug{
@@ -21,6 +21,23 @@
     </style>
 </head>
 
+<script>
+    var deviceWidth = parseInt(window.screen.width);  //获取当前设备的屏幕宽度
+    var deviceScale = deviceWidth / 1280;  //得到当前设备屏幕与640之间的比例,之后我们就可以将网页宽度固定为640px
+    var ua = navigator.userAgent;
+    //获取当前设备类型(安卓或苹果)
+    if (/Android (\d+\.\d+)/.test(ua)) {
+        var version = parseFloat(RegExp.$1);
+        if (version > 2.3) {
+            document.write('<meta name="viewport" content="width=1280,initial-scale=' + deviceScale + ', minimum-scale = ' + deviceScale + ', maximum-scale = ' + deviceScale + ', target-densitydpi=device-dpi">');
+        } else {
+            document.write('<meta name="viewport" content="width=1280,initial-scale=0.75,maximum-scale=0.75,minimum-scale=0.75,target-densitydpi=device-dpi" />');
+        }
+    } else {
+        document.write('<meta name="viewport" content="width=1280, user-scalable=no">');
+    }
+</script>
+
 <body id="Jdoc">
 
     <!-- 用来保存输出结果 -->
@@ -41,7 +58,7 @@
 
     <!-- <div id="tip">Walking...</div> -->
 
-    <div id="menuTip"> 单击“返回/OK”键全景观赏当前图片 </div>
+    <div id="menuTip"> 单击“OK”键,唤起菜单 </div>
     <div id="menuTitle">fff</div>
 
     <div id="menuControl"> 
@@ -94,7 +111,6 @@
 
 
     <script src="jingqu.min.js"></script> 
-
     <script type="text/javaScript">
 
     </script>

File diff suppressed because it is too large
+ 1 - 1
jingqu.min.js


+ 1 - 1
yaoli.html

@@ -8,7 +8,7 @@
     <script src="./js/tvSysBtnBind.v2.1.js"></script>
     <meta charset="utf-8">
     <meta name="page-view-size" content="1280*720" />
-    <link rel="stylesheet" href="yaolistyle.css">
+    <link rel="stylesheet" href="yaostyle.css">
 
 
 

+ 119 - 0
yaoli/jingqu.html

@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+
+<html>
+
+<head>
+    <title>瑶里景区</title>
+    <script src="./js/tvSysBtnBind.v2.1.js"></script>
+
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="yaostyle.css">
+
+    <style>
+        #debug{
+            display: none;
+            position: absolute;
+            top: 20px;
+            left: 10px;
+            color: #ffff00;
+        }
+
+    </style>
+</head>
+
+<script>
+    var deviceWidth = parseInt(window.screen.width);  //获取当前设备的屏幕宽度
+    var deviceScale = deviceWidth / 1280;  //得到当前设备屏幕与640之间的比例,之后我们就可以将网页宽度固定为640px
+    var ua = navigator.userAgent;
+    //获取当前设备类型(安卓或苹果)
+    if (/Android (\d+\.\d+)/.test(ua)) {
+        var version = parseFloat(RegExp.$1);
+        if (version > 2.3) {
+            document.write('<meta name="viewport" content="width=1280,initial-scale=' + deviceScale + ', minimum-scale = ' + deviceScale + ', maximum-scale = ' + deviceScale + ', target-densitydpi=device-dpi">');
+        } else {
+            document.write('<meta name="viewport" content="width=1280,initial-scale=0.75,maximum-scale=0.75,minimum-scale=0.75,target-densitydpi=device-dpi" />');
+        }
+    } else {
+        document.write('<meta name="viewport" content="width=1280, user-scalable=no">');
+    }
+</script>
+
+<body id="Jdoc">
+
+    <!-- 用来保存输出结果 -->
+    <div id="container">
+    </div>
+
+    <!-- <div class="navigation">
+        <div style="position:relative">
+            <div id='map'><img id="map_img" class="map_img" src="panos/HomeHouseMap.png"/></div>
+            <div id='cam'><img class="cam_img" src="panos/HomePoint.png"/></div>
+            <div id='redPoints'>
+            </div>
+        </div>
+            
+    </div> -->
+
+
+
+    <!-- <div id="tip">Walking...</div> -->
+
+    <div id="menuTip"> 单击“OK”键,唤起菜单 </div>
+    <div id="menuTitle">fff</div>
+
+    <div id="menuControl"> 
+        <div class="menu_control_item">
+            <img id="auto_rotation" src="yaoimages/auto_rotation.png" />
+            <div id="rotation_title">自动旋转</div>
+        </div>
+        <div class="menu_control_item">
+            <img id="zoom" src="yaoimages/zoomin.png" />
+            <div id="zoom_title" >放大</div>
+        </div>
+    </div>
+
+    <div id="wholeDirection">
+        <div id="directionTop">阳台</div>
+        <div class="directionCenter">
+            <div id="directionLeft">房间</div>
+            <div id="directionControl"> 
+                <div id='direct_top'><div><img id='direct_top_img' src='yaoimages/direction_top.png'></div><div>1</div></div>
+                <div class="direct_center">
+                    <div id='direct_left'><div><img id='direct_left_img' src='yaoimages/direction_left.png'></div><div>2</div></div>
+                    <div id='direct_right'><div>4</div><div><img id='direct_right_img' src='yaoimages/direction_right.png'></div></div>
+                </div>
+                <div id='direct_bottom'><div>3</div><div><img id='direct_bottom_img' src='yaoimages/direction_bottom.png'></div></div>
+            </div>
+            <div id="directionRight">花园</div>
+        </div>
+
+        
+        <div id="directionBottom">露台</div>
+    </div>
+    
+
+    <div id='direction_top_tip'><img id='direct_top_tip_img' src='yaoimages/direction_top.png'></div>
+
+    
+    <div id='menu'>
+        <div class="pano">
+            <div class="title"></div>
+            <div class="thumb"><img src='yao/chenyiju4k_b.jpg' /></div>
+        </div>
+    </div>
+
+    <div id='debug'></div>
+
+
+
+    <div class="ctrlBtn"></div>
+
+
+
+    <script src="jingqu.min.js"></script> 
+    <script type="text/javaScript">
+
+    </script>
+</body>
+
+</html>

File diff suppressed because it is too large
+ 1 - 0
yaoli/jingqu.min.js


+ 885 - 0
yaoli/js/tvSysBtnBind.v2.1.js

@@ -0,0 +1,885 @@
+try {
+    (function(arr) {
+        arr.forEach(function(item) {
+            if (item.hasOwnProperty('remove')) {
+                return
+            }
+            Object.defineProperty(item, 'remove', {
+                configurable: true,
+                enumerable: true,
+                writable: true,
+                value: function remove() {
+                    this.parentNode.removeChild(this)
+                }
+            })
+        })
+    })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
+    if (!("classList" in document.documentElement)) {
+        Object.defineProperty(HTMLElement.prototype, 'classList', {
+            get: function() {
+                var self = this;
+
+                function update(fn) {
+                    return function(value) {
+                        var classes = self.className.split(/\s+/g),
+                            index = classes.indexOf(value);
+                        fn(classes, index, value);
+                        self.className = classes.join(" ")
+                    }
+                }
+                return {
+                    add: update(function(classes, index, value) {
+                        if (!~index) classes.push(value)
+                    }),
+                    remove: update(function(classes, index) {
+                        if (~index) classes.splice(index, 1)
+                    }),
+                    toggle: update(function(classes, index, value) {
+                        if (~index) classes.splice(index, 1);
+                        else classes.push(value)
+                    }),
+                    contains: function(value) {
+                        return !!~self.className.split(/\s+/g).indexOf(value)
+                    },
+                    item: function(i) {
+                        return self.className.split(/\s+/g)[i] || null
+                    }
+                }
+            }
+        })
+    }
+
+    function fireKeyEvent(el, evtType, keyCode) {
+        var doc = el.ownerDocument,
+            win = doc.defaultView || doc.parentWindow,
+            evtObj;
+        if (doc.createEvent) {
+            if (win.KeyEvent) {
+                evtObj = doc.createEvent('KeyEvents');
+                evtObj.initKeyEvent(evtType, true, true, win, false, false, false, false, keyCode, 0)
+            } else {
+                evtObj = doc.createEvent('UIEvents');
+                Object.defineProperty(evtObj, 'keyCode', {
+                    get: function() {
+                        return this.keyCodeVal
+                    }
+                });
+                Object.defineProperty(evtObj, 'which', {
+                    get: function() {
+                        return this.keyCodeVal
+                    }
+                });
+                evtObj.initUIEvent(evtType, true, true, win, 1);
+                evtObj.keyCodeVal = keyCode;
+                if (evtObj.keyCode !== keyCode) {}
+            }
+            el.dispatchEvent(evtObj)
+        } else if (doc.createEventObject) {
+            evtObj = doc.createEventObject();
+            evtObj.keyCode = keyCode;
+            el.fireEvent('on' + evtType, evtObj)
+        }
+    }
+} catch (e) {}
+
+function addClass(ele, cls) {
+    if (ele.classList) {
+        ele.classList.add(cls)
+    } else {
+        if (!this.hasClass(ele, cls)) ele.className += " " + cls
+    }
+}
+
+function arrIndexOf(arr, v) {
+    for (var i = 0; i < arr.length; i++) {
+        if (arr[i] == v) {
+            return i
+        }
+    }
+    return -1
+}
+
+function removeClass(ele, cls) {
+    if (ele.classList) {
+        ele.classList.remove(cls)
+    } else {
+        if (ele.className != '' && hasClass(ele, cls)) {
+            var arrClassName = ele.className.split(' ');
+            var classIndex = arrIndexOf(arrClassName, cls);
+            if (classIndex !== -1) {
+                arrClassName.splice(classIndex, 1);
+                ele.className = arrClassName.join(' ')
+            }
+        }
+    }
+}
+
+function toggleClass(ele, cls) {
+    if (hasClass(ele, cls)) {
+        removeClass(ele, cls)
+    } else {
+        addClass(ele, cls)
+    }
+}
+
+function hasClass(element, cls) {
+    return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1
+}
+
+function getClassNames(classStr, target, tagName) {
+    target = target ? target : document;
+    tagName = tagName ? tagName : "*";
+    if (document.getElementsByClassName) {
+        return target.getElementsByClassName(classStr)
+    } else {
+        var nodes = target.getElementsByTagName(tagName),
+            ret = [];
+        for (i = 0; i < nodes.length; i++) {
+            if (hasClass(nodes[i], classStr)) {
+                ret.push(nodes[i])
+            }
+        }
+        return ret
+    }
+}
+
+function getElementLeft(ele) {
+    var actualLeft = ele.offsetLeft;
+    var current = ele.offsetParent;
+    while (current !== null) {
+        actualLeft += current.offsetLeft;
+        current = current.offsetParent
+    }
+    return actualLeft
+}
+
+function getElementTop(ele) {
+    var actualTop = ele.offsetTop;
+    var current = ele.offsetParent;
+    while (current !== null) {
+        actualTop += current.offsetTop;
+        current = current.offsetParent
+    }
+    return actualTop
+}
+var contains = document.documentElement.contains ? function(parent, node) {
+    if (parent) {
+        return parent !== node && parent.contains(node)
+    }
+
+} : function(parent, node) {
+    if (parent) {
+        while (node && (node = node.parentNode))
+            if (node === parent) return true
+        return false
+    }
+
+}
+
+function getBoundingClientRect(ele) {
+    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
+    var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
+    if (ele.getBoundingClientRect) {
+        if (typeof arguments.callee.offset !== 'number') {
+            var temp = document.createElement('div');
+            temp.style.cssText = "position:absolute;top:0;left:0";
+            document.body.appendChild(temp);
+            arguments.callee.offset = -temp.getBoundingClientRect().top - scrollTop;
+            document.body.removeChild(temp);
+            temp = null
+        }
+        var rect = ele.getBoundingClientRect();
+        var offset = arguments.callee.offset;
+        return {
+            left: rect.left + offset,
+            right: rect.right + offset,
+            top: rect.top + offset,
+            bottom: rect.bottom + offset,
+            width: (rect.right + offset) - (rect.left + offset),
+            height: (rect.bottom + offset) - (rect.top + offset)
+        }
+    } else {
+        var actualLeft = getElementLeft(ele);
+        var actualTop = getElementTop(ele);
+        var offsetWidth = ele.offsetWidth;
+        var offsetHeight = ele.offsetHeight;
+        return {
+            left: actualLeft - scrollLeft,
+            right: actualLeft + offsetWidth - scrollLeft,
+            top: actualTop - scrollTop,
+            bottom: actualTop + offsetHeight - scrollTop,
+            width: (actualLeft + offsetWidth - scrollLeft) - (actualLeft - scrollLeft),
+            height: (actualTop + offsetHeight - scrollTop) - (actualTop - scrollTop)
+        }
+    }
+}
+
+(function(window) {
+    var tvSysBtnBind = function(init) {
+        var _this = this,
+            _self = self;
+        var id = init.id ? init.id : null,
+            keyRemoveDefault = typeof init.keyRemoveDefault == "undefined" ? false : init.keyRemoveDefault,
+            currentIndex = init.currentIndex ? parseInt(init.currentIndex) : 0,
+            btnLeft = init.btnLeft ? init.btnLeft : 37,
+            btnUp = init.btnUp ? init.btnUp : 38,
+            btnRight = init.btnRight ? init.btnRight : 39,
+            btnDown = init.btnDown ? init.btnDown : 40,
+            btnEnter = init.btnEnter ? init.btnEnter : 13,
+            btnBack = init.btnBack ? init.btnBack : 27,
+            history = typeof init.history == "undefined" ? true : init.history,
+            doublePress = typeof init.doublePress == "undefined" ? false : init.doublePress,
+            isFloatLast = typeof init.isFloatLast == "undefined" ? false : init.isFloatLast,
+            isCentered = typeof init.isCentered == "undefined" ? true : init.isCentered,
+            currentClass = init.currentClass ? init.currentClass : "current",
+            effect = init.effect ? init.effect : "slide1",
+            element = new Array(),
+            rules = init.rules ? init.rules : { hotbutton: {} },
+            direction = "y";
+        _this.className = init.className ? init.className : "hotbutton";
+        this.event = {};
+        var _tempElem;
+        this.currentIndex = parseInt(currentIndex);
+        this.defaultIndex = parseInt(currentIndex);
+        this.currentClass = currentClass;
+        this.historyFocus = {};
+        if (!window.focusobj) window.focusobj = document.createElement("span");
+        (typeof init.onLoad) == "function" ? init.onLoad: init.onLoad = function() {};
+        (typeof init.onBack) == "function" ? init.onLoad: init.onBack = function() {};
+        (typeof init.onCommPress) == "function" ? init.onCommPress: init.onCommPress = function() {};
+        this.onLoad = function() {
+            focusobj.innerHTML = '<div class="cssbk"><b class="lt"></b><b class="t"></b><b class="rt"></b><b class="r"></b><b class="rb"></b><b class="b"></b><b class="lb"></b> <b class="l"></b></div>';
+            addClass(focusobj, "focusobj");
+            addClass(focusobj, "current");
+            focusobj.style.display = "none";
+            _this.target = init.id ? document.getElementById(init.id) : document.body;
+            _this.defaultTarget = _this.target;
+            _this.currentId = init.id ? init.id : "Jdoc";
+            self.getCurRule();
+            _this.reLoad();
+            _this.sourceClassName = _this.className;
+            _this.sourceLength = element.length;
+            _this.prev = element[currentIndex];
+            _this.prevIndex = currentIndex;
+            _this.current = element[currentIndex];
+            _this.currentIndex = currentIndex;
+            _this.target.appendChild(focusobj);
+            init.onLoad.call(_this);
+            window.focus();
+        }
+        self.getCurRule = function(item) {
+            var obj = {};
+            if (rules) {
+                obj = rules["#" + _this.currentId + ">." + _this.className];
+                if (typeof obj == "undefined") {
+                    if (rules[_this.className]) {
+                        obj = rules[_this.className]
+                    }
+                }
+                if (item && typeof rules[item] == "undefined") {
+                    // rules[item]={};
+                }
+            }
+            return obj
+        }
+        this.reSetClass = function(item, index, curClass) {
+            var obj = _self.getCurRule(item);
+            if (!obj) {
+                console.log("初始化" + _this.className + "失败");
+                return
+            }
+            if (typeof obj["history"] == "undefined") obj["history"] = history;
+            if (obj["history"]) _this.historyFocus[_this.currentId + _this.className] = _this.currentIndex;
+            _this.prevCurrentClass = _this.currentClass;
+            if (curClass) {
+                _this.currentClass = curClass
+            }
+            var arr = item.split(">");
+            for (var i = 0; i < arr.length; i++) {
+                if (arr[i] == "") arr.splice(i)
+            }
+            for (var i = 0; i < arr.length; i++) {
+                if (arr[i].indexOf("#") != -1) {
+                    _this.currentId = arr[i].replace("#", "");
+                    if (document.getElementById(_this.currentId)) _this.target = document.getElementById(_this.currentId)
+                }
+                if (arr[i].indexOf(".") != -1) {
+                    item = arr[i].replace(".", "")
+                }
+                if (arr[i].indexOf(".") == -1 && arr[i].indexOf("#") == -1) {
+                    item = arr[i]
+                }
+            }
+            if (getClassNames(item, _this.target).length > 0) {
+                _self.newItem(item, index)
+            } else {
+                _this.target = _this.defaultTarget;
+                if (getClassNames(item, _this.target).length > 0) _self.newItem(item, index)
+            }
+        }
+        this.onCommPress = function(e) {
+            init.onCommPress.call(_this)
+        }
+        self.newItem = function(item, index) {
+            var obj = _self.getCurRule();
+            if (_this.prev) removeClass(_this.prev, _this.currentClass);
+            if (typeof _this.historyFocus[_this.currentId + item] == "undefined") _this.historyFocus[_this.currentId + item] = 0;
+            _this.className = item;
+            var idx = obj["savelastIndex"] ? _this.currentIndex : 0;
+            index = index > getClassNames(item, _this.target).length - 1 ? getClassNames(item, _this.target).length - 1 : index;
+            idx = _this.historyFocus[_this.currentId + item] ? _this.historyFocus[_this.currentId + item] : idx;
+            _this.currentIndex = typeof index != "undefined" ? index : idx;
+            _this.prevIndex = _this.currentIndex;
+            _this.reLoad()
+        }
+        self.readFn = function() {
+            if ((typeof init.onEnterPress) == "function") {
+                init.onEnterPress
+            } else {
+                init.onEnterPress = function() {}
+            }
+            if ((typeof init.onPress) == "function") {
+                init.onPress
+            } else {
+                init.onPress = function() {}
+            }
+        }
+        this.reLoad = function() {
+            self.readFn();
+            element = getClassNames(_this.className, _this.target);
+            if (element.length <= 0) {
+                console.log("初始化" + _this.className + "失败");
+                return
+            }
+            this.hotbtn = element;
+            if (element.length <= 0) return false;
+            if (_this.currentIndex || _this.currentIndex == 0) {
+                _this.currentIndex = parseInt(_this.currentIndex)
+            } else {
+                _this.currentIndex = parseInt(init.currentIndex)
+            }
+            if (isload >= 2 && _this.sourceClass == _this.className && _this.sourceLength != element.length && !isSet) {
+                if (hasClass(_this.prev, _this.className) && _this.sourceLength > element.length) {
+                    _this.currentIndex = _this.currentIndex - (_this.sourceLength - element.length);
+                    _this.prevIndex = _this.prevIndex - (_this.sourceLength - element.length);
+                    _this.sourceLength = element.length
+                } else if (hasClass(_this.prev, _this.className) && _this.sourceLength < element.length) {
+                    _this.currentIndex = _this.currentIndex + (element.length - _this.sourceLength);
+                    _this.prevIndex = _this.prevIndex + (element.length - _this.sourceLength);
+                    _this.sourceLength = element.length
+                }
+            }
+            isSet = false;
+            self.overIndex();
+            _this.current = element[_this.currentIndex];
+            _this.currentIndex = _this.currentIndex;
+            _self.render(_this.currentIndex);
+            for (var i = 0; i < this.hotbtn.length; i++) {
+                this.hotbtn[i].setAttribute("data-id", i)
+            }
+        }
+
+        function keydefault(e) {
+            try {
+                e.preventDefault()
+            } catch (e) {}
+        }
+        var isSet = false;
+        this.setCurrentIndex = function(index) {
+            isSet = true;
+            index = parseInt(index);
+            _this.currentIndex = index;
+            _this.current = element[index]
+        }
+        this.pageScroll = function(ele, Scroll, direction) {
+            if (!ele["data-sum"]) ele["data-sum"] = 0;
+            if (!ele["data-sumx"]) ele["data-sumx"] = 0;
+            ele.style.position = "relative";
+            ele.children[0].style.position = "absolute";
+            if (direction == "up") {
+                if (ele["data-sum"] - Scroll > 0) {
+                    ele["data-sum"] = parseInt(ele["data-sum"]) - Scroll
+                } else {
+                    ele["data-sum"] = 0
+                }
+                ele.children[0].style.left = "0";
+                ele.children[0].style.top = "-" + ele["data-sum"] + "px"
+            } else if (direction == "down") {
+                var clientHeight = ele.children[0].clientHeight;
+                if (ele["data-sum"] + Scroll < clientHeight - ele.clientHeight / 2) {
+                    ele["data-sum"] = parseInt(ele["data-sum"]) + Scroll
+                } else {
+                    ele["data-sum"] = clientHeight - ele.clientHeight
+                }
+                ele.children[0].style.left = "0";
+                ele.children[0].style.top = "-" + ele["data-sum"] + "px"
+            } else if (direction == "left") {
+                if (ele["data-sumx"] - Scroll > 0) {
+                    ele["data-sumx"] = parseInt(ele["data-sumx"]) - Scroll
+                } else {
+                    ele["data-sumx"] = clientWidth - ele.clientWidth
+                }
+                ele.children[0].style.top = "0";
+                ele.children[0].style.left = "-" + ele["data-sumx"] + "px"
+            } else if (direction == "right") {
+                var clientWidth = ele.children[0].clientWidth;
+                if (ele["data-sumx"] + Scroll < clientWidth - ele.clientWidth / 2) {
+                    ele["data-sumx"] = parseInt(ele["data-sum"]) + Scroll
+                } else {
+                    ele["data-sumx"] = 0;
+                }
+                ele.children[0].style.top = "0";
+                ele.children[0].style.left = "-" + ele["data-sumx"] + "px"
+            }
+        }
+        this.viewScrollY = function(y, view) {
+            var maxTop = view.children[0].clientHeight - view.clientHeight;
+            var obj = self.getCurRule();
+            var sumtop = view.children[0]["ScrollY"] ? view.children[0]["ScrollY"] : 0;
+            var top = sumtop + y;
+            middle = getBoundingClientRect(view).height / 2 - getBoundingClientRect(_this.current).height / 2;
+            top = top + middle;
+            if (top > 0 || maxTop < 0) top = 0;
+            else if (Math.abs(top) > Math.abs(maxTop)) {
+                top = -maxTop;
+                //view.children[0]["ScrollY"] == 0 这个句忘记干嘛的了 留着
+            }
+            top = obj["customTop"] != undefined ? obj["customTop"] : top;
+            view.children[0].style.top = top + "px";
+            view.children[0]["ScrollY"] = top
+        }
+        var maxLeft = 0;
+        this.viewScrollX = function(x, view, viewWidth) {
+            var maxLeft = viewWidth - view.clientWidth;
+            var obj = self.getCurRule();
+            var sumleft = view.children[0]["ScrollX"] ? view.children[0]["ScrollX"] : 0;
+            var left = sumleft + x;
+            middle = getBoundingClientRect(view).width / 2 - getBoundingClientRect(_this.current).width / 2;
+            left = left + middle;
+            if (left > 0 || maxLeft < 0) left = 0;
+            else if (Math.abs(left) > Math.abs(maxLeft)) {
+                left = -maxLeft;
+            }
+            left = obj["customLeft"] != undefined ? obj["customLeft"] : left;
+            view.children[0].style.left = left + "px";
+            view.children[0]["ScrollX"] = left
+        }
+        this.onPress = function(e) {
+            init.onPress.call(_this)
+        }
+        this.onEnterPress = function() {
+            init.onEnterPress.call(_this)
+        }
+        window.onBackEvent = this.onBack = function() {
+            init.onBack.call(_this)
+        }
+        self.getScrollTop = function() {
+            var scrollTop = 0;
+            if (document.documentElement && document.documentElement.scrollTop) {
+                scrollTop = document.documentElement.scrollTop
+            } else if (document.body) {
+                scrollTop = document.body.scrollTop
+            }
+            return scrollTop
+        }
+        this.scroll = function(view, direction) {
+            var obj = self.getCurRule();
+            if (obj == undefined || !obj["direction"]) return;
+
+            direction = direction ? direction : obj["direction"];
+            var viewX = view ? view : obj["directionParentX"] ? obj["directionParentX"] : obj["directionParent"] ? obj["directionParent"] : _this.current.parentNode.parentNode;
+            var viewY = view ? view : obj["directionParentY"] ? obj["directionParentY"] : obj["directionParent"] ? obj["directionParent"] : _this.current.parentNode.parentNode;
+            var sum = 0;
+            if (direction.indexOf("x") > -1) {
+                if (viewX instanceof Array) {
+                    for (var i = 0; i < viewX.length; i++) {
+
+                        if (contains(viewX[i], _this.current)) {
+                            viewX = viewX[i];
+                        }
+                    }
+                }
+
+                if (viewX instanceof Array || !contains(viewX, _this.current)) return;
+                for (var i = 0; i < _this.hotbtn.length; i++) {
+                    sum = getBoundingClientRect(_this.hotbtn[i]).width + sum
+                }
+                if (_this.hotbtn.length > 1) {
+                    if (!obj["scrollWidth"])
+                        sum = sum + Math.ceil(getBoundingClientRect(_this.hotbtn[1]).left - getBoundingClientRect(_this.hotbtn[0]).right) * (_this.hotbtn.length);
+                    else {
+                        sum = _this.hotbtn.length * obj["scrollWidth"]; //因为样式多样性,宽度获取并不准确 所以可以自定义
+                    }
+
+                } else {
+                    sum = sum;
+                }
+                viewX.style.position = "relative";
+                viewX.children[0].style.position = "absolute";
+                viewX.children[0].style.width = (sum + 30) + "px";
+                _this.viewScrollX(-(getBoundingClientRect(_this.current).left - getBoundingClientRect(viewX).left), viewX, sum)
+            }
+            if (direction.indexOf("y") > -1) {
+                if (viewY instanceof Array) {
+                    for (var i = 0; i < viewY.length; i++) {
+
+                        if (contains(viewY[i], _this.current)) {
+                            viewY = viewY[i];
+                        }
+                    }
+                }
+                if (viewY instanceof Array || !contains(viewY, _this.current)) return;
+                viewY.style.position = "relative";
+                viewY.children[0].style.position = "absolute";
+
+                _this.viewScrollY(-(getBoundingClientRect(_this.current).top - getBoundingClientRect(viewY).top), viewY)
+            }
+        }
+        var isload = 0;
+        self.render = function(index) {
+            if (_this.renderType == "self") return;
+            isload = isload + 1;
+            if (isload == 2) {
+                _this.sourceLength = element.length
+            }
+            if (_this.prevCurrentClass) {
+                var ele = getClassNames(_this.prevCurrentClass, _this.target);
+                for (var i = 0; i < ele.length; i++) {
+                    if (hasClass(ele[i], _this.prevCurrentClass)) {
+                        removeClass(ele[i], _this.prevCurrentClass)
+                    }
+                }
+            }
+            if (element[index]) addClass(element[index], _this.currentClass);
+            else return;
+            for (var i = 0; i < element.length; i++) {
+                if (i != index && hasClass(element[i], _this.currentClass)) {
+                    removeClass(element[i], _this.currentClass)
+                }
+            }
+            _this.scroll();
+            var effect = element[index].getAttribute("data-effect");
+            if (effect) {
+                focusobj.setAttribute("style", "  position: fixed; z-index: 19;width:" + (getBoundingClientRect(element[index]).width) + "px ;height:" + (getBoundingClientRect(element[index]).height) + "px; left:" + getBoundingClientRect(element[index]).left + "px;top:" + getBoundingClientRect(element[index]).top + "px;");
+                focusobj.setAttribute("class", "focusobj current " + effect);
+                focusobj.style.display = "list-item"
+            } else {
+                focusobj.setAttribute("style", "");
+                focusobj.style.display = "none"
+            }
+        }
+        self.EventUtil = {
+            add: function(obj, callback) {
+                if (typeof(obj.onkeypress) == "null") {
+                    obj.onkeypress = function(e) {
+                        callback && callback(e)
+                    }
+                } else {
+                    obj.onkeydown = function(e) {
+                        callback && callback(e)
+                    }
+                }
+            }
+        }
+        var _t, sum = 0;
+        EventUtil.add(document, function(e) {
+            _this.renderType = "self";
+            if (doublePress) {
+                if (sum < 2)
+                    clearTimeout(_t);
+                sum++;
+                _t = setTimeout(function() {
+                    _self.onPressFn(e)
+                    sum = 0;
+                }, 100)
+            } else {
+                _self.onPressFn(e);
+            }
+
+
+        });
+        self.overIndex = function() {
+            if (_this.currentIndex >= element.length - 1) {
+                _this.currentIndex = element.length - 1
+            }
+            if (_this.currentIndex < 0) {
+                _this.currentIndex = 0
+            }
+        }
+        self.isNumber = function(val) {
+            var regPos = /^\d+(\.\d+)?$/;
+            var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
+            if (regPos.test(val) || regNeg.test(val)) {
+                return true
+            } else {
+                return false
+            }
+        }
+        var distance = function(pointA, pointB, type) {
+            var P1 = getBoundingClientRect(pointA),
+                P2 = getBoundingClientRect(pointB);
+            var dist = 0;
+            switch (type) {
+                case "AA":
+                    dist = Math.sqrt(((P1.left - P2.left) * (P1.left - P2.left)) + ((P1.top - P2.top) * (P1.top - P2.top)))
+                    break;
+                case "AB":
+                    dist = Math.sqrt(((P1.left - P2.right) * (P1.left - P2.right)) + ((P1.top - P2.top) * (P1.top - P2.top)))
+                    break;
+                case "AC":
+                    dist = Math.sqrt(((P1.left - P2.right) * (P1.left - P2.right)) + ((P1.top - P2.bottom) * (P1.top - P2.bottom)))
+                    break;
+                case "AD":
+                    dist = Math.sqrt(((P1.left - P2.left) * (P1.left - P2.left)) + ((P1.top - P2.bottom) * (P1.top - P2.bottom)))
+                    break;
+                case "BA":
+                    dist = Math.sqrt(((P1.right - P2.left) * (P1.right - P2.left)) + ((P1.top - P2.top) * (P1.top - P2.top)))
+                    break;
+                case "BB":
+                    dist = Math.sqrt(((P1.right - P2.right) * (P1.right - P2.right)) + ((P1.top - P2.top) * (P1.top - P2.top)))
+                    break;
+                case "BC":
+                    dist = Math.sqrt(((P1.right - P2.right) * (P1.right - P2.right)) + ((P1.top - P2.bottom) * (P1.top - P2.bottom)))
+                    break;
+                case "BD":
+                    dist = Math.sqrt(((P1.right - P2.left) * (P1.right - P2.left)) + ((P1.top - P2.bottom) * (P1.top - P2.bottom)))
+                    break;
+                case "CA":
+                    dist = Math.sqrt(((P1.left - P2.left) * (P1.left - P2.left)) + ((P1.bottom - P2.top) * (P1.bottom - P2.top)))
+                    break;
+                case "CB":
+                    dist = Math.sqrt(((P1.left - P2.right) * (P1.left - P2.right)) + ((P1.bottom - P2.top) * (P1.bottom - P2.top)))
+                    break;
+                case "CC":
+                    dist = Math.sqrt(((P1.left - P2.left) * (P1.left - P2.left)) + ((P1.bottom - P2.bottom) * (P1.bottom - P2.bottom)))
+                    break;
+                case "CD":
+                    dist = Math.sqrt(((P1.right - P2.left) * (P1.right - P2.left)) + ((P1.bottom - P2.bottom) * (P1.bottom - P2.bottom)))
+                    break;
+                case "DA":
+                    dist = Math.sqrt(((P1.left - P2.left) * (P1.left - P2.left)) + ((P1.bottom - P2.top) * (P1.bottom - P2.top)))
+                    break;
+                case "DB":
+                    dist = Math.sqrt(((P1.right - P2.right) * (P1.right - P2.right)) + ((P1.bottom - P2.top) * (P1.bottom - P2.top)))
+                    break;
+                case "DC":
+                    dist = Math.sqrt(((P1.right - P2.left) * (P1.right - P2.left)) + ((P1.bottom - P2.bottom) * (P1.bottom - P2.bottom)))
+                    break;
+                case "DD":
+                    dist = Math.sqrt(((P1.right - P2.right) * (P1.right - P2.right)) + ((P1.bottom - P2.bottom) * (P1.bottom - P2.bottom)))
+                    break
+            }
+            return dist
+        }
+        self.ruleFn = function(index, direction) {
+            var obj = {};
+            if (rules) {
+                obj = _self.getCurRule()
+            }
+            if (obj && typeof obj == "object" && typeof obj["line"] != "undefined") {
+                var line = obj["line"]
+            } else {
+                var line = _this.hotbtn.length
+            }
+            line = parseInt(line);
+            if (obj && typeof obj == "object" && typeof obj[_this.currentIndex] != "undefined" && typeof obj[_this.currentIndex][index] != "undefined") {
+                var objRules = obj[_this.currentIndex];
+                if (self.isNumber(objRules[index])) {
+                    _this.currentIndex = parseInt(_this.currentIndex) + parseInt(objRules[index])
+                } else if (Array.isArray(objRules[index])) {
+                    _this.reSetClass(objRules[index][0], objRules[index][1], objRules[index][2])
+                } else if (typeof objRules[index] == "function") {
+                    objRules[index].call(_this)
+                } else if (typeof obj["line"] != "undefined") {
+                    _this.currentIndex = _this.currentIndex + line
+                }
+            } else {
+                var jump = element[_this.currentIndex].getAttribute("data-" + direction);
+                jump = parseInt(jump);
+                var max = Math.sqrt(window.screen.width * window.screen.width + window.screen.height * window.screen.height);
+                if (direction == "up") {
+                    if (_this.currentIndex > line - 1 && !obj["autoMove"]) _this.currentIndex = jump ? _this.currentIndex - jump : _this.currentIndex - line;
+                    else if (obj && typeof obj["up"] == "object") _this.reSetClass(obj["up"][0], obj["up"][1], obj["up"][2]);
+                    else if (obj && typeof obj["up"] == "function") obj["up"].call(_this)
+                    else {
+                        var min1 = max,
+                            min2 = max,
+                            curIndex = _this.currentIndex,
+                            curIndex2 = _this.currentIndex;
+                        for (var i = 0; i < _this.hotbtn.length; i++) {
+                            var cur1 = distance(_this.current, _this.hotbtn[i], "AD");
+                            var cur2 = distance(_this.current, _this.hotbtn[i], "BC");
+                            if (cur1 < min1 && cur1 > 0 && getBoundingClientRect(_this.current).top > getBoundingClientRect(_this.hotbtn[i]).top && _this.currentIndex > i) {
+                                min1 = cur1;
+                                curIndex = i;
+                            }
+
+                            if (cur2 < min2 && cur2 > 0 && getBoundingClientRect(_this.current).top > getBoundingClientRect(_this.hotbtn[i]).top && _this.currentIndex > i) {
+                                min2 = cur2;
+                                curIndex2 = i;
+                            }
+                        }
+                        curIndex = min1 < min2 ? curIndex : curIndex2;
+                        _this.currentIndex = curIndex;
+                    }
+                } else if (direction == "left") {
+                    if ((_this.currentIndex) % line != 0 && !obj["autoMove"]) _this.currentIndex = jump ? _this.currentIndex - jump : _this.currentIndex - 1;
+                    else if (obj && typeof obj["left"] == "object") _this.reSetClass(obj["left"][0], obj["left"][1], obj["left"][2]);
+                    else if (obj && typeof obj["left"] == "function") obj["left"].call(_this)
+                    else {
+                        var min1 = max,
+                            min2 = max
+                        curIndex = _this.currentIndex, curIndex2 = _this.currentIndex;
+                        for (var i = 0; i < _this.hotbtn.length; i++) {
+                            var cur1 = distance(_this.current, _this.hotbtn[i], "AB");
+                            var cur2 = distance(_this.current, _this.hotbtn[i], "DC");
+                            if (cur1 < min1 && cur1 > 0 && getBoundingClientRect(_this.current).left > getBoundingClientRect(_this.hotbtn[i]).left && _this.currentIndex > i) {
+                                min1 = cur1;
+                                curIndex = i;
+                            }
+
+                            if (cur2 < min2 && cur2 > 0 && getBoundingClientRect(_this.current).left > getBoundingClientRect(_this.hotbtn[i]).left && _this.currentIndex > i) {
+                                min2 = cur2;
+                                curIndex2 = i;
+                            }
+                        }
+                        curIndex = min1 < min2 ? curIndex : curIndex2;
+                        _this.currentIndex = curIndex
+                    }
+                } else if (direction == "right") {
+                    if ((_this.currentIndex + 1) % line != 0 && !obj["autoMove"]) _this.currentIndex = jump ? _this.currentIndex + jump : _this.currentIndex + 1;
+                    else if (obj && typeof obj["right"] == "object") _this.reSetClass(obj["right"][0], obj["right"][1], obj["right"][2]);
+                    else if (obj && typeof obj["right"] == "function") obj["right"].call(_this)
+                    else {
+                        var min1 = max,
+                            min2 = max,
+                            curIndex = _this.currentIndex,
+                            curIndex2 = _this.currentIndex;
+                        for (var i = 0; i < _this.hotbtn.length; i++) {
+                            var cur1 = distance(_this.current, _this.hotbtn[i], "BA");
+                            var cur2 = distance(_this.current, _this.hotbtn[i], "CD");
+
+                            if (cur1 < min1 && cur1 > 0 && getBoundingClientRect(_this.current).right < getBoundingClientRect(_this.hotbtn[i]).right && _this.currentIndex < i) {
+                                min1 = cur1;
+                                curIndex = i;
+                            }
+
+                            if (cur2 < min2 && cur2 > 0 && getBoundingClientRect(_this.current).right < getBoundingClientRect(_this.hotbtn[i]).right && _this.currentIndex < i) {
+                                min2 = cur2;
+
+                                curIndex2 = i;
+                            }
+                        }
+                        curIndex = min1 < min2 ? curIndex : curIndex2;
+                        _this.currentIndex = curIndex;
+                    }
+                } else if (direction == "down") {
+                    if (_this.hotbtn.length - line > _this.currentIndex && !obj["autoMove"]) _this.currentIndex = jump ? _this.currentIndex + jump : _this.currentIndex + line;
+                    else if (obj && typeof obj["down"] == "object") _this.reSetClass(obj["down"][0], obj["down"][1], obj["down"][2]);
+                    else if (obj && typeof obj["down"] == "function") obj["down"].call(_this);
+                    else if (_this.currentIndex + line > _this.hotbtn.length - 1 && _this.currentIndex + line <= (line - _this.hotbtn.length % line) + _this.hotbtn.length - 1 && _this.hotbtn.length % line != 0 && isFloatLast) {
+                        _this.currentIndex = _this.currentIndex + line;
+                        self.overIndex()
+                    } else {
+                        var min1 = max,
+                            min2 = max,
+                            curIndex = _this.currentIndex,
+                            curIndex2 = _this.currentIndex;
+                        for (var i = 0; i < _this.hotbtn.length; i++) {
+                            var cur1 = distance(_this.current, _this.hotbtn[i], "DA");
+                            var cur2 = distance(_this.current, _this.hotbtn[i], "CB");
+                            if (cur1 < min1 && cur1 > 0 && getBoundingClientRect(_this.current).bottom < getBoundingClientRect(_this.hotbtn[i]).bottom && _this.currentIndex < i) {
+                                min1 = cur1;
+                                curIndex = i;
+                            }
+                            if (cur2 < min2 && cur2 > 0 && getBoundingClientRect(_this.current).bottom < getBoundingClientRect(_this.hotbtn[i]).bottom && _this.currentIndex < i) {
+                                min2 = cur2;
+                                curIndex2 = i;
+                            }
+                        }
+
+                        curIndex = min1 < min2 ? curIndex : curIndex2;
+                        _this.currentIndex = curIndex;
+                    }
+                }
+            }
+        }
+        self.rule = function(keyCode) {
+            if (element.length <= 0) {
+                console.log("初始化" + _this.className + "失败");
+                return
+            }
+            self.overIndex();
+            if (keyCode == btnLeft) {
+                self.ruleFn(0, "left")
+            } else if (keyCode == btnRight) {
+                self.ruleFn(2, "right")
+            } else if (keyCode == btnUp) {
+                self.ruleFn(1, "up")
+            } else if (keyCode == btnDown) {
+                self.ruleFn(3, "down")
+            }
+            self.overIndex()
+        }
+        this.BACK = function() {
+            self.onPressFn("back")
+        }
+        this.LEFT = function() {
+            self.onPressFn("left")
+        }
+        this.RIGHT = function() {
+            self.onPressFn("right")
+        }
+        this.UP = function() {
+            self.onPressFn("up")
+        }
+        this.DOWN = function() {
+            self.onPressFn("down")
+        }
+        self.onPressFn = function(e) {
+            var keyCode = "";
+            if (typeof e == "object") {
+                keyCode = e.keyCode
+            } else {
+                if (e == "left") {
+                    keyCode = btnLeft
+                } else if (e == "right") {
+                    keyCode = btnRight
+                } else if (e == "up") {
+                    keyCode = btnUp
+                } else if (e == "down") {
+                    keyCode = btnDown
+                } else if (e == "back") {
+                    keyCode = btnBack
+                }
+            }
+            _this.event = e;
+            _this.currentIndex = _this.currentIndex >= element.length - 1 ? element.length - 1 : _this.currentIndex;
+            _this.prev = element[_this.currentIndex];
+            _this.prevIndex = _this.currentIndex;
+            self.rule(keyCode);
+            _this.current = element[_this.currentIndex];
+            _this.currentIndex = _this.currentIndex;
+            _this.className = _this.className;
+            _this.onCommPress.call(_this);
+            if (keyCode == 8 || keyCode == btnBack) {
+                if (rules["#" + _this.currentId + ">." + _this.className] && (typeof rules["#" + _this.currentId + ">." + _this.className]["onBack"]) == "function") rules["#" + _this.currentId + ">." + _this.className]["onBack"].call(_this);
+                else if (rules[_this.className] && (typeof rules[_this.className]["onBack"]) == "function") rules[_this.className]["onBack"].call(_this);
+                else _this.onBack.call(_this)
+            }
+            if (rules && rules["#" + _this.currentId + ">." + _this.className] && (typeof rules["#" + _this.currentId + ">." + _this.className]["onPress"]) == "function") init.rules["#" + _this.currentId + ">." + _this.className]["onPress"].call(_this);
+            else if (rules && rules[_this.className] && (typeof rules[_this.className]["onPress"]) == "function") init.rules[_this.className]["onPress"].call(_this);
+            else _this.onPress.call(_this);
+            if (keyCode == btnEnter) {
+                if (rules["#" + _this.currentId + ">." + _this.className] && (typeof rules["#" + _this.currentId + ">." + _this.className]["onEnterPress"]) == "function") rules["#" + _this.currentId + ">." + _this.className]["onEnterPress"].call(_this);
+                else if (rules[_this.className] && (typeof rules[_this.className]["onEnterPress"]) == "function") rules[_this.className]["onEnterPress"].call(_this);
+                else _this.onEnterPress.call(_this)
+            }
+            _this.renderType = "";
+            _self.render(_this.currentIndex);
+            keydefault(e)
+        }
+        this.onLoad()
+    }
+    window.tvSysBtnBind = tvSysBtnBind
+})(window)

BIN
yaoli/yaoimages/auto_rotation.png


BIN
yaoli/yaoimages/auto_rotation@2x.png


BIN
yaoli/yaoimages/auto_rotation_click.png


BIN
yaoli/yaoimages/auto_rotation_click@2x.png


BIN
yaoli/yaoimages/bg1280.jpg


BIN
yaoli/yaoimages/direction.png


BIN
yaoli/yaoimages/direction_board.png


BIN
yaoli/yaoimages/direction_board@2.png


BIN
yaoli/yaoimages/direction_bottom.png


BIN
yaoli/yaoimages/direction_bottom@2x.png


BIN
yaoli/yaoimages/direction_bottom_disable.png


BIN
yaoli/yaoimages/direction_bottom_disable@2x.png


BIN
yaoli/yaoimages/direction_left.png


BIN
yaoli/yaoimages/direction_left@2x.png


BIN
yaoli/yaoimages/direction_left_disable.png


BIN
yaoli/yaoimages/direction_left_disable@2x.png


BIN
yaoli/yaoimages/direction_right.png


BIN
yaoli/yaoimages/direction_right@2x.png


BIN
yaoli/yaoimages/direction_right_disable.png


BIN
yaoli/yaoimages/direction_right_disable@2x.png


BIN
yaoli/yaoimages/direction_top.png


BIN
yaoli/yaoimages/direction_top@2x.png


BIN
yaoli/yaoimages/direction_top_disable.png


BIN
yaoli/yaoimages/direction_top_disable@2x.png


BIN
yaoli/yaoimages/direction_walk.png


BIN
yaoli/yaoimages/direction_walk@2x.png


BIN
yaoli/yaoimages/play4.png


BIN
yaoli/yaoimages/play4@2x.png


BIN
yaoli/yaoimages/play4@3x.png


BIN
yaoli/yaoimages/play_click.png


BIN
yaoli/yaoimages/play_click@2x.png


BIN
yaoli/yaoimages/play_click@3x.png


BIN
yaoli/yaoimages/rang_1201.png


BIN
yaoli/yaoimages/rang_1201@2x.png


BIN
yaoli/yaoimages/rangle.png


BIN
yaoli/yaoimages/rangle@2x.png


BIN
yaoli/yaoimages/yao0.png


BIN
yaoli/yaoimages/zoomin.png


BIN
yaoli/yaoimages/zoomin@2x.png


BIN
yaoli/yaoimages/zoomin_click.png


BIN
yaoli/yaoimages/zoomin_click@2x.png


BIN
yaoli/yaoimages/zoomout.png


BIN
yaoli/yaoimages/zoomout@2x.png


BIN
yaoli/yaoimages/zoomout_click.png


BIN
yaoli/yaoimages/zoomout_click@2x.png


+ 125 - 0
yaoli/yaoli.html

@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+
+<html>
+
+<head>
+    <title>瑶里景区</title>
+
+    <script src="./js/tvSysBtnBind.v2.1.js"></script>
+    <meta charset="utf-8">
+    <meta name="page-view-size" content="1280*720" />
+    <link rel="stylesheet" href="yaostyle.css">
+
+
+
+    <style>
+
+        body {
+            /* set margin to 0 and overflow to hidden, to go fullscreen */
+            margin: 0;
+            overflow: hidden;
+            background: url('./yaoimages/bg1280.jpg') center no-repeat;
+            background-size:100% 100%;
+            color:#ffffff;
+            font-family:  "Microsoft YaHei";  
+            width: 1280px;
+            height:720px;
+            /* background-repeat:no-repeat; */
+            /* width: 120vw; */
+            
+}
+
+/*
+        .navigation{
+            display: flex;
+            flex-direction: column;
+            margin-left: 30px;
+            margin-top: 30px;
+        }
+        
+        */
+
+        #debug{
+            display: none;
+            position: absolute;
+            top: 20px;
+            left: 10px;
+            color: #ffff00;
+        }
+
+
+    </style>
+</head>
+
+<script>
+    var deviceWidth = parseInt(window.screen.width);  //获取当前设备的屏幕宽度
+    var deviceScale = deviceWidth / 1280;  //得到当前设备屏幕与640之间的比例,之后我们就可以将网页宽度固定为640px
+    var ua = navigator.userAgent;
+    //获取当前设备类型(安卓或苹果)
+    if (/Android (\d+\.\d+)/.test(ua)) {
+        var version = parseFloat(RegExp.$1);
+        if (version > 2.3) {
+            document.write('<meta name="viewport" content="width=1280,initial-scale=' + deviceScale + ', minimum-scale = ' + deviceScale + ', maximum-scale = ' + deviceScale + ', target-densitydpi=device-dpi">');
+        } else {
+            document.write('<meta name="viewport" content="width=1280,initial-scale=0.75,maximum-scale=0.75,minimum-scale=0.75,target-densitydpi=device-dpi" />');
+        }
+    } else {
+        document.write('<meta name="viewport" content="width=1280, user-scalable=no">');
+    }
+</script>
+
+<body id="Jdoc">
+
+    <!-- 用来保存输出结果 -->
+    <div id="container">
+    </div>
+
+    <div class="home">
+        <div class="preview">
+            <div class="detail">
+                <div class="detailtitle">
+                    <div class="titlelogo"></div>
+                    <div class="title">内容详情</div>
+                </div>
+                <div class='thumb'><img id="cover" data-id='0' src="./yaoimages/yao0.png"/></div>
+            </div>
+
+            <div class="descript">
+                <div class="content">
+                    <div id="descriptTitle">圣彼得堡</div>
+                    <div id="descriptContent">简介:圣彼得堡位于俄罗斯北部,波罗的海沿岸...</div>
+                </div>
+                
+                <div id="play" class='play'>
+                    <!-- <div class='playlogo'></div>
+                    播放 -->
+                    
+                </div>
+            </div>
+        </div>
+
+    </div>
+
+   <div id="listTitle">剧集列表(11集全)</div>
+    <div id='listContent'>
+        <div class="pano">
+            <div class="title"></div>
+            <div class="thumb"><img  src='yao/chenyiju4k_b.jpg' /></div>
+        </div>
+            -
+        </div>
+
+    </div>
+
+    <div id='debug'></div>
+
+    <div class="ctrlBtn"></div>
+
+    <script src="yaoli.min.js"></script> 
+
+    <script type="text/javaScript">
+
+    </script>
+</body>
+
+</html>

File diff suppressed because it is too large
+ 1 - 0
yaoli/yaoli.min.js


+ 16 - 6
yaolistyle.css

@@ -75,11 +75,11 @@ body {
 
 #menuTip{
     position: absolute;
-    left:50%;
-    top: 50%;
+    left:20px;
+    bottom: 20px;
     color: gray;
-    display: none;
-    transform: translate(-50%,-50%);
+    display: flex;
+    /* transform: translate(-50%,-50%); */
     font-size: 26px;
 }
 
@@ -188,7 +188,17 @@ body {
 
 .menu_control_item{
     text-align: center;
-    /* font-size: 20px; */
+    font-size: 20px;
+}
+#rotation_title,
+#zoom_title{
+    height:26px;
+}
+
+#auto_rotation,
+#zoom{
+    width: 53px;
+    height: 53px;
 }
 
 #wholeDirection{
@@ -349,7 +359,7 @@ body {
     margin-top: 94px;
     margin-left: 25px;
     min-width: 588px;
-    max-height: 334px;
+    max-height: 345px;
     display: flex;
     flex-direction: column;
     justify-content: space-between;

+ 588 - 0
yaostyle.css

@@ -0,0 +1,588 @@
+html,body{
+    height:100%;
+    width: 100%;
+}
+
+body {
+    /* set margin to 0 and overflow to hidden, to go fullscreen */
+    margin: 0;
+    overflow: hidden;
+    /* background-image: url('./yaoimages/bg@2x.png');
+    background-size:cover; */
+    color:#ffffff;
+    font-family:  "Microsoft YaHei";  
+    /* width: 120vw; */
+    
+}
+
+.navigation{
+    display: flex;
+    z-index: 10;
+    position: fixed;
+    top:15px;
+    right:15px;
+    user-select: none;
+    -moz-user-select: none;
+    -khtml-user-select: none;
+    -webkit-user-select: none;
+    -o-user-select: none;
+    
+    /* flex-direction: column;
+    align-items: center; */
+}
+
+.navigation .map_img{
+    width: 128px;
+    height: 128px;
+}
+
+#map{
+    position: absolute;
+    /* z-index: 11;
+    top:32px; */
+    right:15px;
+}
+#cam{
+    position: absolute;
+    /* z-index: 12; */
+    /* top:32px; */
+    right:15px;
+    /* transform: rotate(180deg); */
+}
+
+#redPoints{
+    position: relative;
+    right:15px;
+}
+
+.navigation .cam_img{
+    width: 32px;
+    height: 32px;
+}
+
+.navigation .point_img{
+    width: 8px;
+    height: 8px;
+}
+
+#tip{
+    position: absolute;
+    right:15px;
+    bottom: 15px;
+    color: gray;
+    display: none;
+}
+
+#menuTip{
+    position: absolute;
+    left:20px;
+    bottom: 20px;
+    color: gray;
+    display: flex;
+    /* transform: translate(-50%,-50%); */
+    font-size: 26px;
+}
+
+#menuTitle{
+    position: absolute;
+    left:24px;
+    top: 23px;
+    color: #ffffff;
+    display: none;
+    /* transform: translate(-50%,-50%); */
+    font-size: 27px;
+}
+
+#menu{
+    position: absolute;
+    z-index: 9;
+    display: none;
+    bottom: 0px;
+    width: 100%; 
+    overflow: auto;
+    background-color: rgba(0,0,0,0);
+}
+
+#menu .pano{
+    position: relative;
+    /* margin: 10px; */
+    cursor: pointer;
+
+    
+    
+}
+
+#menu .panoEnd{
+    display: flex;
+    justify-content: flex-end;
+    align-items: flex-end;
+}
+
+#menu .panoSelect{
+    position: relative;
+    /* margin: 10px; */
+    cursor: pointer;
+    /* background-color: violet; */
+    
+}
+
+#menu .pano .title,#menu .panoSelect .title{
+    position: absolute;
+    top: 180px;
+    left: 50%;
+    transform: translate(-50%,0%);
+    font-size: 16px;
+    width: 273px;
+    color: #ffffff;
+    overflow: hidden;
+    max-width: 270px;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-align: center;
+
+
+}
+
+#menu .panoSelect .thumb {
+    width:327px;
+    height:233px;
+    background-image: url('./yaoimages/rangle.png');
+    background-size: cover;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+#menu .pano .thumb{
+
+    width:327px;
+    height:233px;
+    background-size: cover;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+
+
+#menu .pano .thumb img,#menu .panoSelect .thumb img{
+    width:273px;
+    height:180px;
+    margin-left: 5px;
+    margin-top: 9px;
+    
+}
+
+#menuControl{
+    position: absolute;
+    display: none;
+    top: 220px;
+    left: 33px;
+    width: 89px;
+    height: 177px;
+    color: #fffff0;
+    font-family: MicrosoftYaHei;
+    justify-content: space-around;
+    flex-direction: column;
+}
+
+.menu_control_item{
+    text-align: center;
+    font-size: 20px;
+}
+#rotation_title,
+#zoom_title{
+    height:26px;
+}
+
+#auto_rotation,
+#zoom{
+    width: 53px;
+    height: 53px;
+}
+
+#wholeDirection{
+    position: absolute;
+    display: flex;
+    bottom: 20px;
+    right: 10px;
+    /* width: 141px;
+    height: 140px; */
+    color: #ffffff;
+    font-family: MicrosoftYaHei;
+    justify-content: space-around;
+    flex-direction: column;
+}
+
+#wholeDirection .directionCenter{
+    display: flex;
+    justify-content: space-between;
+    margin: 0px 10px;
+}
+
+#directionControl{
+    /* position: absolute; */
+    display: flex;
+    bottom: 30px;
+    right: 30px;
+    width: 141px;
+    height: 140px;
+    color: #ffffff;
+    font-family: MicrosoftYaHei;
+    justify-content: space-around;
+    flex-direction: column;
+    background-image: url('yaoimages/direction_board.png');
+    background-size: cover;
+
+}
+
+#directionControl img{
+    width: 15px;
+    height: 14px;
+}
+
+#direct_top,
+#direct_bottom{
+    display: flex;
+    justify-content: center;
+    flex-direction: column;
+    align-items: center;
+    
+}
+
+#direct_left,
+#direct_right{
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+
+#direct_left div,
+#direct_right div{
+    margin: 0px 2px;
+}
+
+.direct_center{
+    display: flex;
+    justify-content: space-between;
+    margin: 0px 10px;
+}
+
+#directionTop,
+#directionBottom{
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    margin: 2px 0px;
+    height: 21px;
+}
+
+#directionLeft{
+    display: flex;
+    justify-content: flex-end;
+    align-items: center;
+    margin: 0px 2px;
+    width: 48px;
+    text-align: center;
+}
+
+#directionRight{
+    display: flex;
+    justify-content: flex;
+    align-items: center;
+    margin: 0px 2px;
+    width: 48px;
+    text-align: center;
+}
+
+#direction_top_tip{
+    display: flex;
+    position: absolute;
+    top: 10px;
+    left: 50%;
+}
+
+/* --------------------------------------------------------------------- */
+.home{
+    display: flex;
+    flex-direction: column;
+    margin-left: 39px;
+    /* margin-top: 30px; */
+}
+
+.home .preview{
+    display: flex;
+    height: 40%;
+}
+
+.home .detail{
+    
+}
+
+.home .detail .detailtitle{
+    display: flex;
+    align-items: center;
+
+    margin-top: 37px ;
+    margin-bottom: 27px ;
+    
+}
+
+
+.home .detail .titlelogo{
+    width: 5px;
+    height: 33px;
+    background-color: #316FEE;
+}
+
+.home .detail .title{
+    font-size: 30px;
+    margin-left: 15px ;
+    
+}
+
+.home .detail .thumb{
+    /* width:480px;
+    height:360px; */
+    /* max-width: 50%;
+    max-height: 50%; */
+
+}
+
+.home .detail .thumb img{
+    width: 600px;
+    height: 334px;
+
+}
+
+.home .descript{
+    margin-top: 94px;
+    margin-left: 25px;
+    min-width: 588px;
+    max-height: 345px;
+    display: flex;
+    flex-direction: column;
+    justify-content: space-between;
+}
+
+#descriptTitle{
+    font-size: 33px;
+    margin-bottom: 10px;
+}
+
+#descriptContent{
+    font-size: 21px;
+    font-weight: Light;
+    font-weight: lighter;
+    line-height: 34px;
+    max-width: 570px;
+
+}
+
+.home .descript .play{
+    display: flex;
+    position: relative;
+    /* top: 40%; */
+    /* background-color: #384071; */
+    background-image: url('yaoimages/play4.png');
+    background-size: cover;
+    width: 135px;
+    height: 81px;
+    justify-content: center;
+    align-items: center;
+    font-size: 20px;
+    color: #ffffff;
+    /* transform:translate(0,-50%); */
+    cursor: pointer;
+    flex-direction: column;
+    
+} 
+
+.home .descript .playlogo{
+    width:0px;  
+    height:0px;  
+    border:13px solid transparent;
+    border-left:24px solid #ffffff;
+    transform: translate(6px, -6px);
+}
+
+.home .descript .playSelect{
+    display: flex;
+    position: relative;
+    /* top: 40%; */
+    background-color: #1F81FE;
+    width: 135px;
+    height: 81px;
+    justify-content: center;
+    align-items: center;
+    font-size: 20px;
+    color: #ffffff;
+    /* transform:translate(0,-50%); */
+    cursor: pointer;
+    flex-direction: column;
+} 
+
+#listTitle{
+    font-size: 23px;
+    margin-left: 42px;
+    margin-top:32px;
+    margin-bottom: -10px;
+    /* margin: 30px 30px 10px 30px; */
+}
+
+#listContent{
+    /* position: absolute;
+    z-index: 9;
+    display: flex;
+    bottom: 0px;
+    width: 100%; 
+    overflow: auto;
+    background-color: #eaeee3; */
+
+        /* position: absolute; */
+    /* z-index: 9; */
+    display: flex;
+    bottom: 0px;
+    width: 100vw;
+    margin-left: 20px;
+    /* margin-right: 30px; */
+    /* height: 184px; */
+    overflow: auto;
+    background-color: rgba(0,0,0,0);
+    /* min-width: 1280px; */
+    width: calc( 1280px - 20px);
+
+
+    /* display: flex;
+    margin-top: 60px;
+    margin-left: 30px;
+    margin-right: 30px;
+    height: 300px;
+    overflow: auto;
+    background-color: #eaeee3; */
+}
+
+#listContent .pano{
+    position: relative;
+    /* margin: 0px 16px; */
+    cursor: pointer;
+}
+
+
+#listContent .panoEnd{
+    /* display: flex;
+    justify-content: flex-end;
+    align-items: flex-end; */
+    margin: 30px;
+}
+
+#listContent .panoSelect{
+     position: relative;
+     background-image: url('./yaoimages/rangle.png');
+     background-size: cover;
+    /*margin: 0px 16px;
+    cursor: pointer;
+    height: 184px;
+    background-color: #ff00f2; */
+}
+
+#listContent .pano .title,#listContent .panoSelect .title{
+    /* position: absolute;
+    top:50%;
+    left:50%;
+    transform:translate(-50%,-50%);
+    font-size: 18px;
+    width: 120px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap; */
+
+    /* position: absolute;
+    top: 156px;
+    font-size: 16px;
+    width: 273px;
+    color: #ffffff;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    display: flex;
+    justify-content: center; */
+
+    position: absolute;
+    top: 176px;
+    left: 50%;
+    transform: translate(-50%,0%);
+    font-size: 16px;
+    width: 273px;
+    color: #ffffff;
+    overflow: hidden;
+    max-width: 270px;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-align: center;
+
+
+}
+
+#listContent .pano .thumb,#listContent .panoSelect .thumb{
+    
+    /* height:100%;
+    width:100%;
+    min-width:150px;
+    max-width:200px;
+    min-height:120px;
+    max-height:150px; */
+    /* width:277px;
+    height: 184px;
+    display: flex;
+    align-items: center;
+    justify-content: center; */
+
+    width:327px;
+    height:233px;
+    
+    display: flex;
+    align-items: center;
+    justify-content: center;
+   
+}
+
+#listContent .pano .thumb img,#listContent .panoSelect .thumb img{
+    /* height:97%;
+    width:100%;
+    min-height:120px;
+    max-height:200px; */
+    width:273px;
+    height: 180px;
+    margin-top: 8px;
+    margin-left: 5px;
+    
+}
+
+
+*::-webkit-scrollbar {
+    /*滚动条整体样式*/
+    width: 1px;/*定义纵向滚动条宽度*/
+    height: 1px;/*定义横向滚动条高度*/
+    display: none;
+}
+
+*::-webkit-scrollbar-thumb {
+    /*滚动条内部滑块*/
+    border-radius: 1px;
+    background-color: hsla(220, 4%, 58%, 0.3);
+    transition: background-color 0.3s;
+}
+
+*::-webkit-scrollbar-thumb:hover {
+    /*鼠标悬停滚动条内部滑块*/
+    background: #bbb;
+}
+
+*::-webkit-scrollbar-track {
+    /*滚动条内部轨道*/
+    background: #ededed;
+}