jQuery实现适用于移动端的跑马灯抽奖特效示例

yizhihongxing

下面是详细的jQuery实现适用于移动端的跑马灯抽奖特效的攻略:

1. 准备工作

在实现跑马灯抽奖特效之前,我们需要先准备一些基本的素材,包括CSS样式表和HTML结构。在CSS样式表中,我们一般需要定义一些基本的样式,例如设置背景颜色、边框样式等等。在HTML结构中,我们需要定义一个容器元素和一个跑马灯元素。

示例代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery实现适用于移动端的跑马灯抽奖特效</title>
    <style type="text/css">
        body {
            background-color: #f5f5f5;
        }
        .container {
            width: 300px;
            height: 150px;
            margin: 0 auto;
            border: 1px solid #ccc;
            position: relative;
            overflow: hidden;
        }
        .marquee {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #fff;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="marquee"></div>
    </div>
</body>
</html>

2. 实现滚动效果

接下来,我们需要使用jQuery库来实现跑马灯的滚动效果。在实现滚动效果之前,我们需要先导入jQuery库。

示例代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery实现适用于移动端的跑马灯抽奖特效</title>
    <style type="text/css">
        body {
            background-color: #f5f5f5;
        }
        .container {
            width: 300px;
            height: 150px;
            margin: 0 auto;
            border: 1px solid #ccc;
            position: relative;
            overflow: hidden;
        }
        .marquee {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #fff;
        }
    </style>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <script>
        $(function() {
            var marquee = $('.marquee');
            var container = $('.container');
            var clone = marquee.clone();
            container.append(clone);//容器中再添加一个marquee元素作为克隆跑马灯
            var marqueeWidth = marquee.width();
            var containerWidth = container.width();
            var speed = 50;//数值越小速度越快
            var timer = null;

            var start = function() {
                var x = container.scrollLeft();
                if(x >= marqueeWidth) {
                    container.scrollLeft(x - marqueeWidth);
                } else {
                    container.scrollLeft(x + 1);
                }
            };

            var stop = function() {
                clearInterval(timer);
                timer = null;
            }

            //鼠标进入容器暂停滚动
            container.on('mouseenter', function() {
                stop();
            });

            //鼠标离开容器恢复滚动
            container.on('mouseleave', function() {
                timer = setInterval(start, speed);
            });

            timer = setInterval(start, speed);//启动滚动效果
        });
    </script>
</head>
<body>
    <div class="container">
        <div class="marquee"></div>
    </div>
</body>
</html>

3. 实现抽奖效果

最后,我们需要使用jQuery库来实现跑马灯的抽奖效果。在实现跑马灯的抽奖效果之前,我们需要先准备一些中奖数据,例如奖品名称、奖品图片等等。

示例代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery实现适用于移动端的跑马灯抽奖特效</title>
    <style type="text/css">
        body {
            background-color: #f5f5f5;
        }
        .container {
            width: 300px;
            height: 150px;
            margin: 0 auto;
            border: 1px solid #ccc;
            position: relative;
            overflow: hidden;
        }
        .marquee {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #fff;
        }
        .item {
            float: left;
            width: 100px;
            height: 150px;
            text-align: center;
            line-height: 150px;
            font-size: 20px;
            color: #333;
        }
        .item img {
            display: block;
            margin: 0 auto;
            width: 50%;
            height: auto;
            margin-top: 10px;
        }
        .mask {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0,0,0,0.5);
            z-index: 999;
            text-align: center;
            line-height: 150px;
            font-size: 30px;
            color: #fff;
            display: none;
        }
    </style>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <script>
        $(function() {
            var marquee = $('.marquee');
            var container = $('.container');
            var clone = marquee.clone();
            container.append(clone);
            var marqueeWidth = marquee.width();
            var containerWidth = container.width();
            var speed = 50;
            var timer = null;

            var start = function() {
                var x = container.scrollLeft();
                if(x >= marqueeWidth) {
                    container.scrollLeft(x - marqueeWidth);
                } else {
                    container.scrollLeft(x + 1);
                }
            };

            var stop = function() {
                clearInterval(timer);
                timer = null;
            }

            var prize = [
                {name:'奖品1',imgUrl:'./img/prize1.jpg'},
                {name:'奖品2',imgUrl:'./img/prize2.jpg'},
                {name:'奖品3',imgUrl:'./img/prize3.jpg'},
                {name:'奖品4',imgUrl:'./img/prize4.jpg'},
                {name:'奖品5',imgUrl:'./img/prize5.jpg'},
                {name:'奖品6',imgUrl:'./img/prize6.jpg'}
            ];

            //鼠标进入容器暂停滚动,显示抽奖结果
            container.on('mouseenter', function() {
                stop();
                var random = Math.floor(Math.random() * prize.length);
                var selectedPrize = prize[random];
                $('.mask').html(selectedPrize.name + '<br/><img src="' + selectedPrize.imgUrl + '">').fadeIn(1000, function() {
                    setTimeout(function() {
                        $('.mask').fadeOut(1000, function() {
                            timer = setInterval(start, speed);
                        });
                    }, 3000);
                });
            });

            //鼠标离开容器恢复滚动
            container.on('mouseleave', function() {
                timer = setInterval(start, speed);
            });

            timer = setInterval(start, speed);
        });
    </script>
</head>
<body>
    <div class="container">
        <div class="marquee">
            <div class="item">奖品1<img src="./img/prize1.jpg"></div>
            <div class="item">奖品2<img src="./img/prize2.jpg"></div>
            <div class="item">奖品3<img src="./img/prize3.jpg"></div>
            <div class="item">奖品4<img src="./img/prize4.jpg"></div>
            <div class="item">奖品5<img src="./img/prize5.jpg"></div>
            <div class="item">奖品6<img src="./img/prize6.jpg"></div>
        </div>
        <div class="mask"></div>
    </div>
</body>
</html>

在上面的代码中,我们创建了一个名为prize的数组,其中包含了6个奖品的信息。在鼠标进入容器并暂停滚动时,我们随机选取一个奖品信息并在遮罩层中显示出来。3秒后,遮罩层消失,滚动效果重新开始。

至此,我们已经成功实现了适用于移动端的跑马灯抽奖特效。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现适用于移动端的跑马灯抽奖特效示例 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • 怎样在html文档里做隔行换色的多行方法

    要在HTML文档中做隔行换色,我们可以使用CSS中的伪类选择器nth-child()来实现。以下是详细的攻略: 步骤一:在HTML中为需要隔行换色的元素添加class或id属性 在HTML中找到需要隔行换色的元素,可以是table中的tr元素或是ul/li列表中的li元素,为其添加class或id属性。例如: <table> <tr cla…

    css 2023年6月10日
    00
  • CSS实例:用CSS制作网页像素画

    关于“CSS实例:用CSS制作网页像素画”的完整攻略,我会进行如下讲解。 CSS实例:用CSS制作网页像素画 实现思路 要用CSS制作网页像素画,我们需要将标准的网页布局尺寸缩小到每个像素点的大小,这样才能够通过CSS样式来控制每个像素点的颜色、显示等效果。 具体来说,我们可以通过以下几个步骤实现像素画: 设置HTML页面的font-size属性为0,隐藏默…

    css 2023年6月10日
    00
  • CSS也要语义化

    下面是CSS语义化的完整攻略,包含以下五个步骤: 步骤1:理解CSS语义化的概念 CSS语义化是指用具有意义的HTML标签和类名来编写CSS样式的过程。这样做的好处在于,可以让代码更易于阅读和维护,并且可以提升可访问性和SEO优化的效果。 步骤2:选择合适的HTML标签 在编写HTML代码时,应该选择最合适的HTML标签来描述内容。例如,对于一个网站的标题应…

    css 2023年6月9日
    00
  • css 两边固定中间自适应布局的实现

    下面是CSS两边固定中间自适应布局的实现攻略: 1. 使用flex布局实现 Flex布局可以很方便地实现两边固定,中间自适应的布局效果。 示例代码: <div class="container"> <div class="left"></div> <div class=&quo…

    css 2023年6月9日
    00
  • CSS教程:li和ul标签用法举例

    CSS教程:li和ul标签用法举例 简介 在HTML中,我们可以使用ul和li标签来创建列表,这些列表可以用于各种场景,如菜单,导航以及文章的内容提纲等等。使用CSS可以对这些列表进行美化和排版。 在本教程中,我们将看到如何使用CSS来控制ul和li标签,并对它们进行样式设置。 使用ul和li标签创建列表 例如,以下代码会创建一个简单列表: <ul&g…

    css 2023年6月10日
    00
  • js调用css属性写法

    以下是关于“JS调用CSS属性写法”的完整攻略,包含两个示例说明。 方法一:使用style属性 可以使用JavaScript的style属性来调用CSS属性。可以按照以下步骤操作: 在JavaScript文件中,使用style属性来调用CSS属性。例如: document.getElementById("myElement").style…

    css 2023年5月18日
    00
  • php基于openssl的rsa加密解密示例

    以下是基于OpenSSL的RSA加密解密示例攻略。 简介 RSA是一种非对称加密算法,可以实现数据加密与解密。OpenSSL是一个常用的加密算法库,内置了RSA算法,可以用PHP来调用。 准备工作 首先需要安装OpenSSL扩展,可以在php.ini中开启或者通过命令行启用。可以使用 openssl_get_cipher_methods()函数来检查Open…

    css 2023年6月10日
    00
  • css 固定表头 拖动滚动条时对应表头所对应的列 ie6测试通过

    要实现CSS固定表头并支持拖动滚动条时,对应表头所对应的列可以通过一些技巧实现,以下是攻略: 一、HTML结构 首先要构建具有类似表格结构的HTML代码,其中包含固定的表头和可滚动的内容区域。可以采用如下结构实现: <div class="table-container"> <table> <thead&gt…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部