您好,欢迎访问一九零五行业门户网

实现marquee滚动(代码示例)

本篇文章给大家带来的内容是关于实现marquee滚动(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
背景:marquee标签在有些浏览器兼容性不好,就手动用原生js实现了下。
横着滚动效果链接描述
<!doctype html><html><head>    <meta charset="utf-8">    <meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1.0, maximum-scale=1, user-scalable=no" />    <meta content="telephone=no" name="format-detection" />    <title>传奇无双1215</title>    <meta name="keywords" content="传奇无双1215">    <meta name="description" content="传奇无双1215">    <script>        (function (_d) {            var _self = {};            _self.resizeevt = 'orientationchange' in window ? 'orientationchange' : 'resize';            _self.html = _d.getelementsbytagname(html)[0];            _self.widthproportion = function () {                var p = number((_d.body && _d.body.clientwidth || _self.html.offsetwidth) / 720).tofixed(3);                return p > 1.067 ? 1.067 : p < 0.444 ? 0.444 : p; }; _self.changepage = function () { _self.html.setattribute("style", "font-size:" + _self.widthproportion() * 100 + "px"); }; _self.changepage(); if (!document.addeventlistener) return; window.addeventlistener(_self.resizeevt, _self.changepage, false); document.addeventlistener('domcontentloaded', _self.changepage, false); })(document); </script>    <style>        body {            overflow-x: hidden;            font: .36rem/1.5 arial, microsoft yahei, simsun;            margin: 0;            padding: 0;            font-size: .22rem        }        body,        p {            margin: 0;            padding: 0;        }        em {            font-style: normal;            font-weight: 400        }        img {            font-size: 0;            line-height: 0;            border: 0;            display: block;            width: 100%;        }        .box {            margin: 0 auto;            max-width: 720px;            width: 100%;            background: #260b0c;        }        .pr {            position: relative        }        .marquee {            overflow: hidden;            position: absolute;            bottom: 11.5%;            left: 0;            width: 84%;            margin: 0 8%;            height: .4rem        }        #m em {            float: right;            color: #fff        }        #m {            position: absolute;            height: 0.4rem;            display: block;            line-height: .35rem        }        #m p {            float: left;            line-height: .4rem;            margin-right: 40px;            color: #d4be8d        }        #m span {            margin-right: 30px;        }    </style></head><body>    <div class="box">        <div class="pr">            <img class="img" src="images/02.jpg" />            <div class="marquee">                <div id="m">                    <p>                        <em>888新快币</em> <span>xk12*****8抽中</span></p>                    <p>                        <em>88dfdfdfd8新快币</em> <span>xk1dfdfd2*****8抽中</span></p>                    <p>                        <em>888新快币</em> <span>xk12*****8抽中</span></p>                    <p>                        <em>888新快币</em> <span>xk12*****8抽中</span></p>                    <p>                        <em>888新快币</em> <span>xk12*****8抽中</span></p>                    <p>                        <em>888新快币</em> <span>xk12*****8抽中</span></p>                </div>            </div>        </div>    </div>    <script>        var timer;        var m = document.getelementbyid(m)        var init_left = document.queryselector(.box).clientwidth * 0.8;        var m_left = init_left;        var m_width = 0;        function settimer() {            timer = setinterval(function () {                m_left -= 1;                if (m_left <= -m_width + 20) { m_left = init_left; } m.style.left = m_left + 'px' }, 10) } function marquee() { var p = m.queryselectorall("p"); for (var i = 0, l = p.length; i < l; i++) { m_width += p[i].clientwidth + 48 } console.log(m_width) m.style.width = m_width + 'px' m.style.left = init_left + 'px' settimer(); m.addeventlistener("mouseover", function () { clearinterval(timer); }) m.addeventlistener("mouseout", function () { settimer(); }) } marquee() </script></body></html>
竖着滚动效果链接描述
<!doctype html><html><head>    <meta charset="utf-8">    <meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1.0, maximum-scale=1, user-scalable=no" />    <meta content="telephone=no" name="format-detection" />    <title>万圣节1101</title>    <meta name="keywords" content="万圣节1101">    <meta name="description" content="万圣节1101">    <script>        (function (_d) {            var _self = {};            _self.resizeevt = 'orientationchange' in window ? 'orientationchange' : 'resize';            _self.html = _d.getelementsbytagname(html)[0];            _self.widthproportion = function () {                var p = number((_d.body && _d.body.clientwidth || _self.html.offsetwidth) / 720).tofixed(3);                return p > 1.067 ? 1.067 : p < 0.444 ? 0.444 : p; }; _self.changepage = function () { _self.html.setattribute("style", "font-size:" + _self.widthproportion() * 100 + "px"); }; _self.changepage(); if (!document.addeventlistener) return; window.addeventlistener(_self.resizeevt, _self.changepage, false); document.addeventlistener('domcontentloaded', _self.changepage, false); })(document); </script>    <style>        body {            margin: 0;            padding: 0        }        em {            font-style: normal;            font-weight: 400        }        .pr {            position: relative        }        img {            font-size: 0;            line-height: 0;            border: 0;            width: 100%;        }        .box {            width: 100%;            max-width: 720px;            background: #260b0c        }        .marquee {            overflow: hidden;            position: absolute;            bottom: 17%;            left: 0;            width: 54%;            margin: 0 23%;            height: 1.5rem        }        #m,        #m p {            font-size: .22rem        }        #m em {            float: right        }        #m {            position: absolute;            top: 1.6rem;            width: 100%        }        #m p {            color: #c1d1ff        }        #m em {            color: #ffab2a        }    </style></head><body>    <div class="box">        <div class="pr">            <img src="images/04.jpg" />            <div class="marquee">                <div id="m">                    <p>                        <em>888新快币</em>xk12*****8抽中</p>                    <p>                        <em>488新快币</em>xk12*****8抽中</p>                    <p>                        <em>188新快币</em>xk12*****8抽中</p>                    <p>                        <em>88新快币</em>xk12*****8抽中</p>                </div>            </div>        </div>    </div>    <script>        //marquee        var timer, m_height;        var m = document.getelementbyid(m)        m_height = m.clientheight;        var marquee_height = document.queryselector(.marquee).clientheight;        var m_top = marquee_height;        function settimer() {            timer = setinterval(function () {                m_top -= 1;                if (m_top <= -m_height) { m_top = marquee_height; } m.style.top = m_top + 'px'; }, 10) } function marquee() { settimer(); m.addeventlistener("mouseover", function () { clearinterval(timer); }) m.addeventlistener("mouseout", function () { settimer(); }) } marquee() </script></body></html>
以上就是实现marquee滚动(代码示例)的详细内容。
其它类似信息

推荐信息