前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JavaScript事件(二)

JavaScript事件(二)

作者头像
二十三年蝉
发布于 2018-02-27 10:20:29
发布于 2018-02-27 10:20:29
1.3K00
代码可运行
举报
文章被收录于专栏:闻道于事闻道于事
运行总次数:0
代码可运行

例题顺序:

1.子菜单下拉 2.图片轮播 3.选项卡效果 4.进度条制作 5.滑动效果 6.滚动固定效果

1.子菜单下拉

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>子菜单下拉</title>
 6 <style>
 7     *{
 8         margin:0px auto;
 9         padding:0px;
10         text-align:center;
11         line-height:50px;
12         vertical-align:middle;
13         }
14     #wai{
15         margin-top:150px;
16         width:800px;
17         height:50px;
18         }
19     .nei{
20         background-color:#9F9;
21         float:left;
22         width:150px;
23         height:50px;
24         line-height:50px;
25         vertical-align:middle;
26         }
27     .neiw{
28         width:0px;
29         height:0px;
30         float:left;
31         display:none;}
32     .nein{
33         position:relative;
34         top:50px;
35         left:-150px;
36         height:50px;
37         width:150px;}
38     .neil{
39         margin:1px;
40         width:149px;
41         height:49px;
42         background-color:#9F0;}
43 </style>
44 </head>
45 
46 <body>
47     <div id="wai">
48         <!--每个子菜单设置一个鼠标移上显示,一个鼠标移走隐藏-->
49         <div class="nei" onmouseover="xianShi('cp')" onmouseout="yin('cp')">产品中心</div>
50         <div class="neiw" id="cp">
51             <div class="nein"  onmouseover="xianShi('cp')" onmouseout="yin('cp')">
52                 <div class="neil">男装</div>
53                 <div class="neil">女装</div>
54                 <div class="neil">休闲</div>
55             </div>
56         </div>
57         <div class="nei" onmouseover="xianShi('xw')" onmouseout="yin('xw')">新闻中心</div>
58         <div class="neiw" id="xw"  onmouseover="xianShi('xw')" onmouseout="yin('xw')">
59             <div class="nein">
60                 <div class="neil">娱乐</div>
61                 <div class="neil">军事</div>
62                 <div class="neil">政策</div>
63             </div>
64         </div>
65 
66         <div class="nei" onmouseover="xianShi('jr')"  onmouseout="yin('jr')">今日动态</div>
67         <div class="neiw" id="jr"  onmouseover="xianShi('jr')"  onmouseout="yin('jr')">
68             <div  class="nein">
69                 <div class="neil">男装</div>
70                 <div class="neil">女装</div>
71                 <div class="neil">休闲</div>
72             </div>
73         </div>
74         <div class="nei" onmouseover="xianShi('zx')" onmouseout="yin('zx')">最新政策</div>
75         <div class="neiw" id="zx">
76             <div class="nein" onmouseover="xianShi('zx')" onmouseout="yin('zx')">
77                 <div class="neil">商务</div>
78                 <div class="neil">环境</div>
79                 <div class="neil">金融</div>
80             </div>
81         </div>
82     </div>
83 </body>
84 </html>
85 <script>
86     //鼠标移上去显示
87     function xianShi(id){
88         var d=document.getElementById(id);
89         d.style.display="block";
90     }
91     //鼠标移走隐藏
92     function yin(id){
93         var d=document.getElementById(id);
94         d.style.display="none";
95     }
96 
97 </script>

这个题目需要注意的是不能只给子菜单设置外边距而不设置边框线,这样鼠标移到空白外边距时子菜单会触发隐藏效果

还有就是鼠标的事件加在子菜单的neiw和nein的div中,以及给每一个子菜单加鼠标事件,效果都是一样的

2.大图轮播效果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>大图轮播</title>
 6 <style>
 7     *{
 8         margin:0px auto;
 9         padding:0px;}
10     /*设置外层div样式*/
11     #wai{
12         width:300px;
13         height:600px;}
14     /*设置图片大小,应和外层div一样,这里因为页面只有三个图片,所以直接用标签选择器设置*/
15     img{
16         width:300px;
17         height:600px;}
18 </style>
19 </head>
20 <body>
21     <div id="wai">
22             <img src="img/1 (3).jpg"/>
23             <img src="img/1 (6).jpg"  style="display:none"/>
24             <img src="img/1 (5).jpg"  style="display:none"/>
25     </div>
26 </body>
27 </html>
28 <script>
29     //首先获取图片到数组中,这里因为页面只有三个图片没有其他内容,所以根据标签名获取
30     var img=document.getElementsByTagName("img");
31     //定义函数的索引值,也就是第几图片
32     var index=0;
33     //调用函数
34     huan();
35     //设置函数
36     function huan(){
37         //首先遍历所有图片设置隐藏
38         for(i=0;i<img.length;i++){
39             img[i].style.display="none";
40         }
41         //显示图片,如果这句话写在判断后面,会先显示第二张
42         img[index].style.display="block";
43         //索引加一,如果索引大于函数长度-1,索引在从0开始
44         if(index>=img.length-1){
45             index=0;
46         }else{
47             index++;
48         }
49         //这是轮播,每个两秒调用一次程序本身        
50         window.setTimeout("huan()",2000);
51     }
52 
53 </script>

这里之前干过一个错误,把每个图片都放在一个div里,然后设置后两个图片所在的div默认隐藏,后面函数设置的的<img>标签显示,结果只有第一个图片显示两秒后消失。

<div>也不能乱加,看有无需要。

前后要对应好,不要前面设置的div隐藏,后面改变的img显示。

3.选项卡效果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>选项卡</title>
 6 <style>
 7     *{
 8         margin:0px auto;
 9         padding:0px;
10         }
11     #tou{
12         margin-top:100px;
13         width:800px;
14         height:50px;
15     }
16     .list{
17         float:left;
18         width:200px;
19         height:50px;
20     }
21     #shen{
22         width:800px;
23         height:50px;}
24     .list1{
25         float:left;
26         width:800px;
27         height:500px;
28         display:none;
29     }
30 </style>
31 </head>
32 
33 <body>
34     <div id="tou">
35         <div class="list" style="background-color:#0F9" onclick="show('s1')"></div>
36         <div class="list" style="background-color:#9F0" onclick="show('s2')"></div>
37         <div class="list" style="background-color:#9FF" onclick="show('s3')"></div>
38         <div class="list" style="background-color:#3CF" onclick="show('s4')"></div>
39     </div>
40     <div id="shen">
41           <div class="list1" style="background-color:#0F9" id="s1"></div>
42         <div class="list1" style="background-color:#9F0" id="s2"></div>
43         <div class="list1" style="background-color:#9FF" id="s3"></div>
44         <div class="list1" style="background-color:#3CF" id="s4"></div>
45     </div>
46 </body>
47 </html>
48 <script>
49     //单击选项卡,先将所有子菜单隐藏,在将被点击的选项卡的子菜单显示
50     function show(id){
51         var s=document.getElementsByClassName("list1");
52         for(var i=0;i<s.length;i++){
53             s[i].style.display="none";
54         }
55         var a=document.getElementById(id);
56         a.style.display="block";
57     }
58 </script>

先布局选项卡,在布局子菜单,然后根据需要可在子菜单挨个设置隐藏,也可以在样式表统一设置隐藏,根据需要,这里在样式表设置

4.进图条制作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>进度条</title>
 6 <style>
 7     *{
 8         margin:0px auto;
 9         padding:0px;
10         }
11     #wai{
12         margin-top:600px;
13         width:800px;
14         height:50px;
15         border:1px solid #333;}
16     #nei{
17         float:left;
18         background-color:#333;
19         height:50px;
20         }
21 </style>
22 </head>
23 
24 <body>
25     <input type="button" value="开始" onclick="gun('nei')" />
26     <div id="wai">
27         <div id="nei" style="width:0%"></div>
28     </div>
29 </body>
30 </html>
31 <script>
32     //设置循环,j代表进度,也就是宽度,一直加百分之一
33     var j=0;
34     function gun(id){
35         if(j<100){
36             j++;
37         }
38         //j是一个数值,用+和字符串%拼接起来之后变成了百分比字符串,字符串就可以被样式识别
39         document.getElementById('nei').style.width=j+"%";
40         window.setTimeout("gun()",5);
41     }
42 
43     //以下是失败的方法
44     /*function gun(id){
45         var a=document.getElementById(id);
46         var j=(parseInt(a.style.width));
47         if(j<100){
48             j++;
49         }
50         a.style.width=j+"%";
51         window.setTimeout("gun()",5);
52     }*/
53 </script>

5.滑动效果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>无标题文档</title>
 6 <style>
 7     *{
 8         margin:0px auto;
 9         padding:0px;
10         }
11     #wai{
12         width:1000px;
13         height:500px;}
14     #zuo{
15         width:200px;
16         height:500px;
17         background-color:#3F0;
18         float:left;}
19     #you{
20         width:800px;
21         height:500px;
22         background-color:#FF9;
23         float:left;}
24     #fu{
25         width:40px;
26         height:40px;
27         background-color:#CCC;
28         position:relative;
29         text-align:center;
30         line-height:40px;
31         vertical-align:middle;
32         top:-250px;
33                 }
34 </style>
35 </head>
36 
37 <body>
38     <div id="wai">
39         <div id="zuo" style="width:200px"></div>
40         <div id="you" style="width:800px"></div>
41     </div>
42     <div style="clear:both"></div>
43     <div id="fu" style="left:-300px" onclick="dong()">>></div>
44 </body>
45 </html>
46 <script>
47     var z=document.getElementById("zuo");
48     var y=document.getElementById("you");
49     var s=document.getElementById("fu");
50     function dong(){
51         //获取每个div的宽度并转化为整数
52         var i=parseInt(z.style.width);
53         var k=parseInt(y.style.width);
54         var sl=parseInt(s.style.left);
55         //如果没有走到最终位置,就控制每个元素向右移动1
56         if(i<800){
57             i++;
58             k--;
59             sl++;
60             z.style.width=i+"px";
61             y.style.width=k+"px";
62             s.style.left=sl+"px";
63             window.setTimeout("dong()",6);
64 
65         }
66     }
67 </script>

6.滚动固定效果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>滚动固定</title>
 6 <style>
 7     *{
 8         margin:0px auto;
 9         padding:0px;
10         }
11     #wai{
12         height:2200px;
13         width:800px;
14         }
15     #tou{
16         height:50px;
17         width:800px;
18         background-color:#0FF;
19         }
20     #shen{
21         height:150px;
22         width:800px;
23         background-color:#9F6;}
24 </style>
25 </head>
26 
27 <body>
28     <div id="wai">
29         <div id="shen"></div>
30         <div id="tou" ></div>
31     </div>
32 </body>
33 </html>
34 <script>
35     //监听滚动的距离,滚动触发
36     window.onscroll=function(){
37         //获取头部菜单是否达到浏览器顶部边框
38         if(window.scrollY>150){
39             //设置头部菜单相对浏览器边框定位
40             document.getElementById("tou").style.position="fixed";
41             //距离顶部0距离
42             document.getElementById("tou").style.top="0px";
43             }else{
44             //如果距离小于150,也就是滚回,设置定位为空,及不定位
45             document.getElementById("tou").style.position="";
46             }
47     }
48 </script>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-06-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Django之文件上传
文件上传必须以Post的方式进行提交,表单<form>中的文件上传时候必须带有enctype="multipart/form-data"时候 才会包含文件内容数据。
Yuou
2022/09/26
6280
python+Django+mysql多图,多文件上传(包含admin)
新建app,修改setting.py中的installed_app和静态路径,增加媒体路径
晓歌
2018/08/15
2.9K0
python+Django+mysql多图,多文件上传(包含admin)
django 文件上传
文件上传是网站开发中非常常见的功能。这里详细讲述如何在Django中实现文件的上传功能。
用户2200417
2023/02/01
1.2K0
Django教程(五)- 上传及显示
上传及显示 model.py from django.db import models # Create your models here. class Profile(models.Model): name = models.CharField(max_length = 50) picture = models.ImageField(upload_to = 'pictures/') views.py from django.shortcuts import render from dja
Python攻城狮
2018/08/23
5270
Django教程(五)- 上传及显示
python+mysql上传图片和上传文件 转
参考博客:http://www.cognize.me/2016/05/09/djangopic
晓歌
2018/08/15
1.8K0
python+mysql上传图片和上传文件
                                                                            转
Django基础配置
TomatoCool
2023/07/30
1460
Django REST 框架详解 02 | 设置与模块
文章目录 一、设置 二、路由模块 三、数据库模块 四、异常模块 一、设置 setting.py import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for
白墨石
2021/01/12
1.1K0
django-文件上传
今天尝试了文件上传,基于from表单下的, 多了两个设置, 1.MEDIA_URL 2.MEDIA_ROOT 这两个设置需要在setting中写好路径, 然后在models中新建一个类用来储存上传信息 class Files(models.Model): files=Filesfiled(upload_to=’media’) 默认如果在media_root中设置了路径就不需要填写了,没有设置就需要填写upload_to这项。 还有就是在前端文件提交表单中必须要有 enctype=”mu
kirin
2020/05/09
1.2K0
5 分钟,带你快速入门 Django 文件上传下载
文件上传、下载作为基础功能,在 Web 项目中非常普遍,Django 项目如何实现文件上传下载?
AirPython
2021/04/20
1.1K0
5 分钟,带你快速入门 Django 文件上传下载
Python框架Django上传文件的简单案例分享
因为今年参加了中国软件杯, 选择的项目为: http://cnsoftbei.com/plus/view.php?aid=581 其中的一个要求为: 数据源接入:支持对接PostgreSQL数据仓库(
NothAmor
2022/05/31
7730
django之文件上传下载等相关
实现步骤: 1)创建项目Django_upload:django-admin startproject Django_upload;创建app:cd Django_upload;python manage.py startapp blog。 2)设计模型(M) 这里的模型只包括了两个属性:用户名(即谁上传了该文件);文件名。具体形式如下所示: #coding=utf-8 from __future__ import unicode_literals from django.db import models class NormalUser(models.Model): username=models.CharField('用户名',max_length=30) #用户名 headImg=models.FileField('文件',upload_to='./upload')#文件名 def __str__(self): return self.username class Meta: ordering=['username']#排序风格username 同步数据库:Python manage.py makemigrations python manage.py migrate 3)设计视图(V) view.py: #coding=utf-8 from django.shortcuts import render,render_to_response from django import forms from django.http import HttpResponse from blog.models import * # Create your views here. class NormalUserForm(forms.Form): #form的定义和model类的定义很像 username=forms.CharField() headImg=forms.FileField() #在View中使用已定义的Form方法 def registerNormalUser(request): #刚显示时调用GET方法 if request.method=="POST": uf = NormalUserForm(request.POST,request.FILES)#刚显示时,实例化表单(是否有数据) if uf.is_valid():#验证数据是否合法,当合法时可以使用cleaned_data属性。 #用来得到经过'clean'格式化的数据,会所提交过来的数据转化成合适的Python的类型。 username = uf.cleaned_data['username'] headImg = uf.cleaned_data['headImg'] #write in database normalUser=NormalUser()#实例化NormalUser对象 normalUser.username = username normalUser.headImg = headImg normalUser.save()#保存到数据库表中 return HttpResponse('Upload Succeed!')#重定向显示内容(跳转后内容) else: uf=NormalUserForm()#刚显示时,实例化空表单 return render(request,'register.html',{'uf':uf})#只有刚显示时才起作用 配置urls.py: from django.conf.urls import url from django.contrib import admin from blog.views import * urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^register/$',registerNormalUser), ] 4)设计模板与表单(T)templates/register.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="
菲宇
2019/06/13
3.2K0
Django之文件上传下载
在文件上传期间,实际文件数据存储在request.FILES中。此字典中的每个条目都是UploadedFile对象(或子类) – 上传文件的简单包装器。UploadedFile对象是对Python file对象的一个简单封装,并带有Django特定的附加功能。需要表示文件的时候,Django内部会使用这个类。UploadedFile对象拥有下列属性和方法:
菲宇
2022/05/06
3.5K0
Django中的二维码生成器
现在打开 qrcodeapp 的 views.py 编写生成二维码的逻辑,然后我们在模板上渲染它。
IT运维技术圈
2022/06/27
6330
Django中的二维码生成器
Django实战-番外篇-tinymce富文本编辑器
富文本编辑器在 web应用中使用广泛,比如 markdown、ueditor 等,像这些编辑器都有集成在 python 和 django 的第三方包。
小团子
2019/07/18
9350
Django实战-番外篇-tinymce富文本编辑器
Python进阶26-Django 视图层
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
2K0
Python进阶26-Django 视图层
Django入门
一般是用户通过浏览器向服务器发送一个请求(request),首先会去访问视图函数,如果不涉及数据的调用(那么这个时候视图函数返回一个模板,也就是你一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板的空格中,最后返回网页给用户
py3study
2020/02/10
2.2K0
分离django中的媒体文件,静态文件
django项目中,占很大体积的是静态文件,媒体文件还有html代码,那我们该如何把它们分离出来以方便我们和服务器去管理和使用它们。
py3study
2020/01/05
1.8K0
Django实现图片上传并前端页面显示
开始之前我们先确认环境中已经安装了Pillow,如果没有安装,可以通过pip install Pillow来安装,这个是python的图像处理库
iginkgo18
2020/09/27
2.7K0
Django实现图片上传并前端页面显示
ElementUI 上传文件以及限制
一、概述 现有项目中,涉及文件上传。要求: 1. 文件必须是excel 2. 只能上传1个文件 3. 文件大小不能超过5M  二、Upload 上传 注意:ElementUI Upload 上传,需要
py3study
2021/03/02
4.5K0
ElementUI 上传文件以及限制
Django 之视图篇
<font color="red">欢迎阅读本专栏其他文章</font> Django 之路由篇 Django 之 Models(Models 模型 & 数据表关系) Django 之模板篇 views 视图 视图概述 视图即视图函数,接收web请求并返回web响应的事务处理函数 响应指符合http协议要求的任何内容,包括json,string,html等 本章忽略事务处理,重点在如何处理返回结果上 其他简单视图 django.http 给我们提供了很多和HttpResponse类似的简单视图,通过查看dj
ruochen
2021/05/12
1.1K0
Django 之视图篇
相关推荐
Django之文件上传
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档