查看本章节

查看作业目录


需求说明:

利用自定义动画 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. 【Git项目管理】分布式 Git - 分布式工作流程

    分布式 Git - 分布式工作流程 你现在拥有了一个远程 Git 版本库,能为所有开发者共享代码提供服务,在一个本地工作流程下,你也已经熟悉了基本 Git 命令.你现在可以学习如何利用 Git 提供的 ...

  2. Bootstrap-table动态表格

    在开发中遇到一个需要动态生成table的需求,包括表头和数据.在调试的过程中遇到很多问题,包括数据分页,解决之后记录一下. 如下代码的数据加载流程: ①表头是动态的,在初始化table之前需要调一次后 ...

  3. 编译安装redis之快速增加redis节点

    #: 下载安装包 [root@localhost ~]# wget http://download.redis.io/releases/redis-4.0.14.tar.gz #:解压 [root@l ...

  4. Spring Boot下使用拦截器

    Spring Boot对于原来在配置文件配置的内容,现在全部体现在一个类中,该类需要继承自WebMvcConfigurationSupport类,并使用@Configuration进行注解,表示该类为 ...

  5. 【Service】【Database】【MySQL】基础

    1. 概念 1.1. 作者:Unireg 1.2. MySQL AB --> MySQL Solaris:二进制版本: 1.3. 官方网站: MySQL: www.mysql.com Maria ...

  6. 测试JDBCUtils的重用性

    package cn.itcast.jdbc;import cn.itcast.util.JDBCUtils;import java.sql.*;import java.util.Properties ...

  7. 【科研工具】CAJViewer的一些操作

    逐渐发现CAJViewer没有想象中的难用. 添加书签:Ctrl+M 使用按类分类,可以筛选出书签位置,和注释区分. 搜索:Ctrl+F 可以定义多种搜索.

  8. logrotate没有rotate的排查过程

    前言 背景 xxx,你过来把squid的日志检查一下,是否做了日志切割:于是乎开启了logrotate没有切割日志的排查旅程,em--.只能说过程很爽,平时疲于应付繁琐的事情,难得有点时间能一条线慢慢 ...

  9. 在对话框中设置前置任务(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 在[任务信息]中的[前置任务]选项卡中设置,这是最古板的法子. 至于[任务信息]这个对话框从哪里去找,这--这么久了,不会 ...

  10. 任务日历关联(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 有时候吧,一件大事是由N件小事组成的,而这N件小事当中,不是每件事都可以在周末停下来的,当然也不是所有的事都必须在周末完成 ...