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

下面是详细的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日

相关文章

  • layui实现数据表格点击搜索功能

    下面我就为你详细讲解 layui 实现数据表格点击搜索功能的完整攻略。 1. 组件准备 首先,我们需要在页面中引入 layui 的相关组件,包括 layui.css、layui.js 和以及所需的模块文件。具体操作如下: <!– 引入 layui.css –> <link rel="stylesheet" href=…

    css 2023年6月10日
    00
  • 深入理解css布局之定位与浮动

    深入理解css布局之定位与浮动是实现网站布局的重要技能之一,本文将从以下几个方面展开介绍: 什么是定位与浮动? 定位(Position)和浮动(Float)都是 css 中常用的布局方式。 定位是指使用 position 属性来控制元素的位置。常见的属性值为 relative(相对定位)、absolute(绝对定位)、fixed(固定定位)等。 浮动是指使用…

    css 2023年6月9日
    00
  • 利用AJAX实现WordPress中的文章列表及评论的分页功能

    本文旨在介绍如何利用 AJAX 技术实现 WordPress 网站中的文章列表及评论的分页功能。我们将会介绍如何使用 jQuery 和 WordPress 提供的 REST API 实现数据的异步加载,旨在提高网站的响应速度和用户体验。 1. 准备工作 在开始本文之前,我们需要确保以下内容已准备就绪: 一台运行最新版 WordPress 的服务器 一台拥有 …

    css 2023年6月10日
    00
  • Bootstrap图片轮播组件Carousel使用方法详解

    Bootstrap图片轮播组件Carousel使用方法详解 Bootstrap是一款目前非常流行的前端开发框架,其中的Carousel(图片轮播)组件可以用于网页展示轮播图或广告图等。接下来详细讲述如何使用Bootstrap中的Carousel组件,包含从起步到实现的完整攻略。 第一步:在HTML文件中引入Bootstrap 首先需要在HTML文件中引入Bo…

    css 2023年6月11日
    00
  • 利用CSS3实现进度条的两种姿势详解

    关于“利用CSS3实现进度条的两种姿势详解”的攻略,我将会提供以下的详细步骤及示例说明来帮助读者更好地理解。 一、实现进度条的基本原理 实现进度条的基本原理是利用CSS3中提供的transition属性和transform属性来实现。transition属性决定了进度条过渡的时间、过渡方式以及过渡对象;而transform属性则可以使过渡对象发生缩放、旋转、…

    css 2023年6月11日
    00
  • 详解CSS中视窗单位和百分比单位的使用

    详解CSS中视窗单位和百分比单位的使用 在CSS中,有很多种单位可以用来定义元素的尺寸和位置,其中视窗单位和百分比单位是比较常用的单位。这篇攻略将会介绍这两种单位的具体使用方法。 视窗单位 视窗单位是指相对于浏览器可视窗口大小的单位,包括vw、vh、vmin和vmax四种单位。这些单位可以帮助我们实现响应式设计,使得网页布局能够自适应不同的屏幕尺寸。 vw和…

    css 2023年6月9日
    00
  • 按照字体名称调用字体让浏览器显示你希望的字体

    为了让浏览器展示特定的字体,我们可以使用CSS的@font-face规则来调用自定义字体。在使用@font-face规则之前,我们需要先获取自定义字体文件。 获取自定义字体文件有两种方式。一种是直接从字体官网下载字体文件,另一种是使用字体转换工具(如Font Squirrel、Transfonter等)将已存在的字体文件转换为网页可以使用的格式(如WOFF、…

    css 2023年6月9日
    00
  • 深入解读CSS的OOCSS和SMACSS以及BEM

    标题:深入解读CSS的OOCSS和SMACSS以及BEM 作为网站的作者,你需要深入理解和掌握 CSS 的一些重要的技术,其中 OOCSS、SMACSS 和 BEM 是其中比较重要的三种技术。 OOCSS OOCSS(Object-Oriented CSS)是一种 CSS 样式编写的方法,它的主要思想是将样式与 HTML 结构分离开来,将样式抽象为“对象”,…

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