热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Web编程基础HTML、CSS、JavaScript学习之课程作业“仿360极速浏览器新标签页”...

Web编程基础--HTML、CSS、JavaScript学习之课程作业“仿360极速浏览器新标签页”背景:作为一个中专网站建设出身,之前总是做静态的HT

Web编程基础--HTMLCSSJavascript 学习之课程作业“仿360极速浏览器新标签页”

背景:

作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没有学习过Javascript(jQuery),这个学期重新学习了一遍之前学习过的又学了些脚本语言。结合自己平时有点编程基础,学起来也挺快了,作为学期作业(自定任务),我尝试着去实现360极速浏览器的新标签页(刚开始也没有很好的想法,自己一直比较喜欢360极速浏览器‘不是下广告’,学校机房也没有联网,本来还想做404,单打开浏览器后就看到了新标签页,感觉还不错,就觉定去‘尝试’下)。

所用知识点:

         最基本的HTML+CSS+DIV知识用来布局,在布局的基础上利用Javascript(jQuery)对页面加“特效”。

页面分析:

 

(mainL)

对于上图,有两大部分组成:上部的搜索、下部的标签页。

搜素div:由搜素栏区和按钮区。

         搜索栏区div:搜素引擎选择图标(下部还有个div进行选择搜索引擎,该div中有三个小div每个div对应一个搜索引擎1)、文本框、下拉热区。

         按钮:一个div。

标签页div:一个大div 包含若干小div ,小div 使用统一的css。

 

(mainR)

对于上图,由两大部分组成:顶部导航:下部分内容区

         导航div:五个div,每个div下有两个,上部图标和下部的文字

         内容区div:左侧分类导航部分和右侧的天气

                  左侧分类导航div:左侧分类div和右侧的导航div,每个分类下各有一个导航div

                   天气部分div:上部天气图标div,下部天气信息div

 

(setBlock)

皮肤和设置部分:两个div设置宽高,添加背景

设置面板:

  显示搜索一行一个div两部分文字div、按钮div、

  显示分类导航一个div两部分文字div、按钮div、

  最长访问显示个数一个大的div其包括、内部有三部分:

    最长访问显示个数一个div,

    个数一个div

    选择框一个大的div,包括五个小的div

  最长访问间距部分一个大的div包括三部分,文字div、数字div、滑动块div

 (changePage)

翻页部分,一个大的div包含一个翻页图标div

 

特效分析:

(mainL)absolute

  搜索引擎选择图标部分:选择搜索引擎div先进行隐藏,选择引擎图标进行默认显示一个,鼠标click事件用来显示隐藏的搜索引擎div,显示是可以用display:block,可以用$("#div").slideToggle("slow");//渐隐和渐渐显示,也可以用

$("#div").animate({height:'100px'},300);//用次方法时先将div的高度设为0,这三种方法可以实现不同的效果,从而调高用户体验度,基本使用方法不在介绍。

选择搜索引擎div显示后,可以选择一个,里面有三个div,分别进行设置单击后,则修改选择图标背景部分,如果需要修改按钮背景可以单独设置下。

         Input-文本框:οnclick="if(this.value == '这里也可以搜索')this.value ='';"  onBlur="if(this.value == ' '||this.value == '')this.value ='这里也可以搜索';"

         热区部分:如果未连接网络则不显示,如果联网,则默认背景为向下,文本框获得焦点是改变其背景图片,这里不考虑联网。

按钮部分:一个div onmouseover事件改变其背景图片。

下部可拖动部分,参考http://www.runoob.com/jqueryui/example-draggable.html

(mainR)absolute

         对于该部分(不考虑联网时天气的更新),可以加效果的也就是,根据鼠标选择不同的分类导航在其右侧显示相应的分类链接    

名站
这里用了传值的方法调用对用的js为:

 function mainR_typeNav_left_nav(obj){

var mainR_typeNav_right_info = document.getElementsByName("mainR_typeNav_right_info");

         //以上获得元素

         for(var i=mainR_typeNav_right_info.length-1;i>=0;i--){

                   //每个对应的元素的onmouseover事件进行设置

                   mainR_typeNav_right_info[i].style.display="none";

         }

         mainR_typeNav_right_info[parseInt(obj)].style.display="block";

}

(setBlock)fixed

皮肤按钮和设置按钮两个div 设置下高和宽度,jQuery设置其onmouseover、onmouseout事件,改变其背景。

function minsc1_Over(ico){ ico.style.backgroundPosition="0px -60px";}

function minsc1_Out(ico){ ico.style.backgroundPosition="0px 8px";}

两个显示和隐藏图标: 这部分用了无奈用了两个全局变量标识用户选择的按钮处于那种状态,每次都对变量进行改变,用户单击是改变背景同时改变标志,代码如下:

    var flag_ShowSearch_ico=true;

         $("#mainSC_SetBlock_ShowSearch_ico").click(function(){

                   if(flag_ShowSearch_ico){

                            $(this).css({'background-image':'url(icon/add_dot_range_off.png)'});  //改变背景颜色

                            $("#top").slideToggle("slow");//显示搜索栏

                            setTimeout(function(){$("#con").animate({'top':'105px'},500);}, 300);//改变内容top的高度,0.3秒的时间后平滑上移

                            flag_ShowSearch_ico=false;//修改全局变量

                   }else {//同上

                            $(this).css({'background-image':'url(icon/add_dot_range_on.png)'});

                            $("#top").slideToggle("slow");

                            $("#con").animate({'top':'205px'},300);

                            flag_ShowSearch_ico=true;

                   }       

         });

显示个数:这里需要进行计算div 的大小,以为下面还有可以调整间距的设置,这里计算的公式为:内容高度=显示的行数 * 照片高度+间距*2*显示的行数,代码如下:

case 2:{//这里只是设置两行

                            $("#top").animate({'top':'130px'},300);//重置导航搜索的top距离

                            setTimeout(function(){$("#con").animate({'height':(324+val*4)+"px"},300);}, 300);//设置0.3秒后设置高度

                            break;//324两个照片的高度

                            }

设置间距:

         $(".con_img").css({'margin':value+"px"});//设置间距

         $("#con").css({'width':(1140+parseInt(value)*8)+"px"});//1140初始宽度,每行4个图片所以是8倍

         $("#con").css({'height':(162*SETShowRow+parseInt(value)*SETShowRow*2)+"px"});//设置高度162每个照片的高度

         $("#con").css({'margin-left':(-(570+parseInt(value)*3))+"px"});//保持居中

(changePage)fixed

         如果不显示分类导航按钮这部分不显示,如果显示分类导航,不触发onmouseover事件,只显示中间的一个箭头图标,触发onmouseover事件调整通明度,onclick事件利用animate()方法改变mainL和mainR位置,达到左右切换

总结:

         花费大约一周的时间进行构思和打码,从不熟悉Javascript(jquery)到有了一个好的入门,有了一定的编程经验,编程中遇到各种问题去看书、百度和QQ群友请教,每天总感觉很花时间,其间也有想放弃(糊弄)但这不符合我的性格,昨天作业交了,但在我的“作品”中仍有许多需要改进和优化的地方,有的部分最初设计问题,到后来不好改了(拖动图标部分、翻页效果,搜索引擎选择部分)。总之在本次作品中,虽然没有实现的‘完美’但收获还是不小的。

转:https://www.cnblogs.com/A--Q/p/6117429.html



推荐阅读
  • 日期:2012-4-7来源:GBin1.com在线演示本地下载今天我们介绍一个超棒的创建快速动态互动HTML5可视化图形效果的javascript类库-Envision.j ... [详细]
  • 子元素过滤器在页面设计过程中需要突出某些行时,可以通过基本过滤选择器中的:eq()来实现表单中行的凸显,但不能同时让多个表具有相同的效果。在jQuer ... [详细]
  • 1011-MarriageCeremoniesPDF(English)StatisticsForumTimeLimit:2second(s)MemoryLimit:32MBYouw ... [详细]
  • 726:ROADS726:ROADS总时间限制:1000ms内存限制:65536kB描述Ncitiesnamedwithnumbers1Nareconnectedwithon ... [详细]
  • ExistsQueryeditExistsQueryeditExistsQueryeditExistsQueryeditReturnsdocumentsthathaveatleas ... [详细]
  • Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理,现在在企业中的使用率也是很广的。git是一个分布式的版本控制系统,不像以前的svn,svn是 ... [详细]
  • 51nod1183 编辑距离
    1183 编辑距离基准时间限制:1 秒空间限制:131072 KB分值: 0 难度:基础题收藏关注1183 编辑距离基准时间限制:1 秒空间限制:131072 KB分值: 0 难度 ... [详细]
  • CentOS 7.6网卡绑定mode1
    CentOS7.6网卡绑定mode1[root@server~]#systemctlstopNetworkManager[root@server~]#systemctldisabl ... [详细]
  • 1、对于List而言,要不然就使用迭代器,要不然就从后往前删除,从前往后删除会出现角标越界。因为我List有两个remove方法,一个是int作为形参(删除指定位置的元素),一个是 ... [详细]
  • dremio的学习点滴
    在连接数据源后,进行数据源反射的创建,dremio会在本地创建一个类似于副本的文件,具体目录未知,当下次去执行sql时,则会启动加速器进行查询速度的优化。反射策略:fullupda ... [详细]
  • 如何设计一个秒杀系统(各方面都写的很到位)
    1.Overview1.1并发读写秒杀要解决的主要问题是:并发读与并发写。并发读的优化理念是尽量减少用户到服务端来读数据,或者让他 ... [详细]
  • Postman工具使用教程
    Postman的基础功能1.GET请求GET请求:点击Params,输入参数及value,可输入多个,即时显示在URL链接上,所以,GET请求的请求头与请求参数如在接口文档中无特别 ... [详细]
  • salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面
    上一篇Lightning内容描述的是LDS,通过LDS可以很方便的实例化一个对象的数据信息。当我们通过列表展示数据需要编辑时,我们常使用两种方式去处理编辑页面:PopUpWindo ... [详细]
  • linux js文件怎么打开文件夹路径,js 获取文件本地路径
    1.代码获取文件本地路径选择导入数据源:functionbrowseFolder(){try{varMessage“\u8bf7\u9009\u62e9\u6587\u4ef6\u ... [详细]
  • ProblemDescription:Readtheprogrambelowcarefullythenanswerthequestion.#pragmacomment(linker ... [详细]
author-avatar
明卫国
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有