查看本章节

查看作业目录


需求说明:

利用自定义动画 animate() 方法,实现某图书网站中“近 7 日畅销榜”中的图书无缝垂直向上滚动特效:当光标移入到图书上时,停止滚动,鼠标移开时,继续滚动

实现思路:

  1. 在新建 HTML 页面中,添加 <h3> 和无序列表,用无序列表显示 6 本畅销书籍的名称
  2. 添加 CSS 规则,重点设置无序列表的父版块 div(id="book") 的宽度和高度,使其只能显示前 3 个列表项,溢出的后 3 项使用 overflow: hidden 属性隐藏
  3. 在 HTML 文件中导入 jQuery 框架,并添加 <script></script> 标签对
  4. 声明 moveBook() 函数,在函数体中,声明变量 stopScroll 表示是否停止滚动,初始值是 false,表示不停止滚动

实现代码:

核心代码:

<script type="text/javascript">
function moveBook(){
var stopScroll=false;
var marginTop=0;
setInterval(function(){
if(stopScroll) return;
$(".express").children("li").first().
animate({marginTop:marginTop--},0,function(){
if (!$(this).is(":animated")) {
if ((-marginTop)>$(this).height()) {
$(this).css("margin-top",0).appendTo($(".express"));
marginTop=0;
}
}
});
},50);
$(".express").mouseover(function(){
stopScroll=true;
}).mouseout(function(){
stopScroll=false;
});
}
$(function(){
moveBook();
});
</script>

完整代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>无标题文档</title>
</head>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
}
body{
font-size: 12px;
}
ul{
list-style: none
}
ul li{
height: 25px;
line-height: 25px;
}
h3{
width: 162px;
height: 30px;
line-height: 30px;
text-align: center;
background-color: #C33;
} </style>
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
function moveBook(){
var stopScroll=false;
var marginTop=0;
setInterval(function(){
if(stopScroll) return;
$(".express").children("li").first().
animate({marginTop:marginTop--},0,function(){
if (!$(this).is(":animated")) {
if ((-marginTop)>$(this).height()) {
$(this).css("margin-top",0).appendTo($(".express"));
marginTop=0;
}
}
});
},50);
$(".express").mouseover(function(){
stopScroll=true;
}).mouseout(function(){
stopScroll=false;
});
}
$(function(){
moveBook();
});
</script>
<body>
<h3>进七日畅销榜</h3>
<div id="book">
<ul class="express">
<li>傲慢与偏见</li>
<li>玻璃鞋全集(50集34VCD)</li>
<li>澳大利亚:假日之旅</li>
<li>浪漫地中海:假日之旅</li>
<li>欧洲风情:假日之旅</li>
<li>社交疯狂英语</li>
</ul>
</div>
</body>
</html>

利用自定义动画 animate() 方法,实现某图书网站中“近 7 日畅销榜”中的图书无缝垂直向上滚动特效:当光标移入到图书上时,停止滚动,鼠标移开时,继续滚动的更多相关文章

  1. JS事件 鼠标移开事件(onmouseout)鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序。

    鼠标移开事件(onmouseout) 鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序. 当把鼠标移动到"登录"按钮上,然后再移开时,触发onmouseout ...

  2. 自定义动画animate()

    在上一节总结了一下3中类型的动画,其中show()和hide()方法会同时修改元素的多个属性,fadeOut()和fadeIn()方法只会修改元素的不透明度,而slideDown()和slideUp( ...

  3. js进阶 13-4 jquery自定义动画animate()如何使用

    js进阶 13-4 jquery自定义动画animate()如何使用 一.总结 一句话总结:animate(params,[speed],[easing],[fn]),参数:params:一组包含作为 ...

  4. [修正] Firemonkey SpeedButton 鼠标移开按钮后 IsPressed 为 False 的问题

    未修正: 修正代码: 请将 FMX.StdCtrls.pas 复制到自己的工程目录下,再修改如下代码: procedure TCustomButton.RestoreButtonState; begi ...

  5. CSS实现input默认文字灰色有提示文字点击后消失鼠标移开显示

    CSS实现input美化操作默认是为灰色,并且有提示 如下图 鼠标点击后文字消失,鼠标移开后文字显示 给input入下图添加代码 style="color:#cccccc; outline: ...

  6. chrome DevTools 里面 css样式里面 勾上 :hover 会将鼠标移上的效果一直保持,技巧:要在鼠标上的 div上 勾 :hover

    chrome DevTools 里面 css样式里面 勾上 :hover 会将鼠标移上的效果一直保持,技巧:要在鼠标上的 div上 勾 :hover

  7. jQuery 效果 - 动画 animate() 方法

    我们先看一个demo <!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11. ...

  8. jQuery动画animate方法使用介绍

    用于创建自定义动画的函数. 返回值:jQuery animate(params, [duration], [easing], [callback]) 如果使用的是“hide”.“show”或“togg ...

  9. UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法

    基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...

随机推荐

  1. 「Spark从精通到重新入门(二)」Spark中不可不知的动态资源分配

    前言 资源是影响 Spark 应用执行效率的一个重要因素.Spark 应用中真正执行 task 的组件是 Executor,可以通过spark.executor.instances 指定 Spark ...

  2. 【dva】如何监听异步请求是否完成(页面loading)

    方案1.你可以在model里面操作 在model里面的state里面声明一个变量state,默认是false,effect函数执行开始就将其改为true,然后等call()然后结束后又将其改为fals ...

  3. MQTT协议 - arduino ESP32 通过精灵一号 MQTT Broker 进行通讯的代码详解

    前言 之前研究了一段时间的 COAP 协议结果爱智那边没有测试工具,然后 arduino 也没有找到合适的库,我懒癌发作也懒得修这库,就只能非常尴尬先暂时放一放了.不过我在 爱智APP -> 设 ...

  4. [BSidesCF 2019]Runit(细心)

    这道题目并不难,甚至很简单,通过这个文章提醒自己一定要细心 例行检查我就不放了 首先程序开启了nx这个保护,但是首先buf却鲜卑mmap映射了 然后程序又调用了buf 所以这道题直接上传shellco ...

  5. Python基础入门(7)- Python异常处理机制

    1.初识异常 1.1.什么是异常与异常处理 异常就是错误 异常会导致程序崩溃并停止运行 能监控并捕获异常,将异常部位的程序进行修理使得程序继续正常运行 1.2.异常的语法 1 # coding:utf ...

  6. HSPICE与非门仿真

    一.HSPICE的基本操作过程 打开HSPICE程序,通过OPEN打开编写好的网表文件. 按下SIMULATE进行网表文件的仿真. 按下AVANWAVES查看波形图(仿真结果). 二. 网表文件结构总 ...

  7. CF764B Timofey and cubes 题解

    Content 有一个序列 \(a_1,a_2,a_3,...,a_n\),对于 \(i\in[1,n]\),只要 \(i\leqslant n-i+1\),就把闭区间 \([i,n-i+1]\) 内 ...

  8. STL源码剖析-waked_ptr

    目录一.提问二. 代码实现2.1 mweak_ptr的具体实现2.2 测试用例一.提问weak_ptr为什么会存在?shared_ptr不是已经有了引用计数吗?具体原因详见模拟实现boost库中的sh ...

  9. Postman环境变量的使用

    前言 请注意,Postman新版有ui上的改动,本文使用的Postman 版本8.4.0 for Mac, ui有调整,但是功能无改变. Postman是一款接口调测的软件,服务端开发的同学肯定会对自 ...

  10. Mybatis-Plus中使用max、sum聚合函数、只查询指定字段、查询语句多个OR处理

    聚合函数查询 可以使用以下方法 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select(" I ...