js 功能-搜索效果 |学习笔记

简介: 快速学习 js功能-搜索效果

开发者学堂课程【移动 Web 前端开发:js 功能-搜索效果】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/594/detail/8413


js功能-搜索效果


基本内容

一、 搜索效果程序的准备工作

二、 滚动页面的设计

 

一、 搜索效果程序的准备工作

1、此时已经新建好了一个 index.js,已经把 index.js引入到了 index.html中,

/** ITCAST WEB ...*/

window . onload = function() {  

//window . onload 执行一些页面的初始化功能,

2初始化页面功能

1)、/*搜索*/

search();

2)、/*轮播图*/

banner();

3)、/*倒计时*/

downTime();

}

// 如果将这三个功能的代码写在一块,将会影响初始化页面的阅读。 影响对功能模块的变量定义。 如果都写在一起,大的方面的问题肯定是没有的,但是会有一点微小的影响, 此时调用一些方法。

3、代码

var search = function ( ) {

l search 的功能:(三个需求)

(1)、页面初始化的时候,距离顶部为0的时候,透明度是0。

Ø 问:页面的颜色是十六进制的颜色。如果要改变顶部的透明度,但是页面里的内容不受影响,该怎么操作?

答:使用 rgba 颜色转换。(网络上有很多转换工具),找到对  应的代码后去index.js 更换背景颜色。

Ø 接着看一下 rgba 的数值,拿到的颜色可以去 PSP 里面做转化,或者在网络上搜索“rgba 颜色转化”-将颜色的代码复制到“rgba 颜色转化”中,可将十六进制颜色码转换成 RGB 颜色值。

·jd_search.jd_search_boxf

width: 100%;

height: 40px;

max -width: 640px;

min-width: 320px;

margin: 0 auto;

background: rgba(216, 80,92,0.85);

//第四个为透明度

position: relative

刷新之后可以看到透明度,如下图所示:

image.png

 

(2)、当页面滚动的时候,离页面顶部的距离会逐渐变大,透明度递增。

此时会监听到页面的滚动, 如果不监听就不会发现页面顶部的距离逐渐变大。

因此当完成第二个需求的时候就开始准备监听页面滚动的视角。 但是监听完页面滚动的视角之后, 到底要操作哪些元素?也必须要知道。

Ø 问:如果要达到页面的滚动, 该操作哪些元素?

答:获取 dom 元素

var search = document . querySelector('.jd_search_box');

//此时就算成功的拿到了 search;

//'.jd_search_box就是页面中间的内容

var banner = document . querySelector(' .jd_ banner');

//.jd_ bannerbanner 容器

//问:需要 banner 容器的目的是什么?

答:需要将它的宽度计算出来;或者是把它的高度拿出来。

/*距离范围*/

//获取高度的代码:

var height = banner . offsetHeight ;

(3)、当滚动的距离超过的轮播图的距离的时候,保持不变。

}

var banner = function(){

}

var downTime = function(){

}

以上都是该程序的准备工作;

 

二、 滚动页面的设计

1、如果要操作以上程序,那么就需要在滚动页面进行设计,接下来就需要监听滚动事件;

监听滚动事件(此时必须在监听到页面滚动的时候才会触发)

window.onscronll = function( ) {

//在监听到页面滚动的时候才会触发

console.log(‘scronll’);

//当滚动的时候,轮播在 console 没有打印出来, 说明以  上的程序这个方法根本没有执行;

问:为什么没有打印出来?

答:因为在程序设计里禁用了 Disable JavaScript;

禁用当前页面的 Disable JavaScript。

image.png

当勾选掉这个禁用的时候;刷新页面的时候,轮播在 console 打印出来,一个“1”。 滚动页面的时候 scronll’”也被打印出来了。

2、已经监听到了当前页面滚动,那么接下来需要做什么?离页面顶部的距离会逐渐变大,透明度递增。

问:所以说透明度和什么有关系?

答: 与页面顶部的距离有关系。

问: 怎样获取当前页面与顶部的距离呢?

var top = document.body.scropllTop

// 这是页面与顶部的距离,也是滚动了多少的距离。

//当前页面滚动的距离

// 这种写法是谷歌的方式

需要记住

var top = document . documentElement . scrollTop;

/*ie 的写法*/

//现在是在做移动端开发, 一般来讲是和谷歌的操作方法一样的, 现在需要使用的是第一种谷歌的写法,只需要记住第二种方法 ie 的写法就可以了。 ie 的程序开发和现在的程序开发没有一点关系。

3、当页面滚动的距离完成之后,需要与高度进行比较;

var opacity = 0;

// 这是默认的透明度;

if ( top  >  height ) {

/*3.当滚动的距离超过了轮播图的距离的时候保持不变*/

// 如果出现 top 大于 height 的情况, 这个时候就需要上面标题(一、搜索效果的准备工作)--(3、代码)--(Search 的功能)--(3)、当滚动的距离超过的轮播图的距离的时候,保持不变。

opacity = 0.85;

// 当滚动的距离超过了轮播图的高度时,这个opacity数值就应该固定; 保持这个透明度。

} else {  

//正常的任务情况

/*2.当页面滚动的时候随者 页面距离顶部的距离变大透明度变大*/

//其他情况下,要取一个距离作为定值; 那么距离要怎样变换呢?

答:应该有个比例。

//0.85 是一个最大的透明度, 假设 页面在没有滚动的时候,有一个透明度是200 , 那么滚动到一半的时候透明度就变为了100, 100÷200等于 0.5 , 那么此时透明度也应该变成原来的一半,即透明度为0. 85*(top/height);

opacity = 0. 85*(top/height);

}

// 对于页面的滚动有两种情况: 第一种 是滚动在轮播图一下了;

第二种 依然在轮播图上面滚动;

//在轮播图一下滚动透明度保持不变, 在轮播图那滚动透明度逐渐变大; 但是这个变大和滚动的距离有关系。

当透明度设置完成以后接下来就要给搜索盒子设置颜色。

4设置颜色给搜索盒子

search. style. background = ‘raga(216,80,92,’ +opacity+’)’

//设置盒子的透明度; 透明度在之前已经设置好了,现在只需要将透明度放上去就可以了。 这样搜索盒子的颜色就设置好了。

滚动监听的目的就是为了设置当前的透明度, 那么给当前的搜索盒子加上这个透明度就可以了, 那么这个透明度是怎样变化的呢?

当大于轮播图高度的时候, 透明度保持不变。

当在轮播图高度范围以内的时候, 需要按照一个滚动的距离成正比的关系, 然后再计算透明度,

5、程序完成之后 随着页面的高度的下拉, 搜索区域的透明度也越来越深

相关文章
|
8月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
444 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
7月前
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
8月前
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
609 11
|
8月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
10月前
|
JavaScript 前端开发 安全
盘点原生JS中目前最没用的几个功能API
在JavaScript的发展历程中,许多功能与API曾风光无限,但随着技术进步和语言演化,部分功能逐渐被淘汰或被更高效的替代方案取代。例如,`with`语句使代码作用域复杂、可读性差;`void`操作符功能冗余且影响可读性;`eval`函数存在严重安全风险和性能问题;`unescape`和`escape`函数已被`decodeURIComponent`和`encodeURIComponent`取代;`arguments`对象则被ES6的剩余参数语法替代。这些变化体现了JavaScript不断优化的趋势,开发者应紧跟技术步伐,学习新技能,适应新技术环境。
190 10
|
10月前
|
JavaScript 前端开发
【Vue.js】监听器功能(EventListener)的实际应用【合集】
而此次问题的核心就在于,Vue实例化的时机过早,在其所依赖的DOM结构尚未完整构建完成时就已启动挂载流程,从而导致无法找到对应的DOM元素,最终致使计算器功能出现异常,输出框错误地显示“{{current}}”,并且按钮的交互功能也完全丧失响应。为了让代码结构更为清晰,便于后续的维护与管理工作,我打算把HTML文件中标签内的JavaScript代码迁移到外部的JS文件里,随后在HTML文件中对其进行引用。
152 8
|
11月前
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
12月前
|
JavaScript 前端开发 容器
jQuery多功能滑块插件r-slider.js
r-slider.js是一款jQuery多功能滑块插件。使用该插件,可以制作出滑块、开关按钮、进度条、向导步骤等多种效果。
179 5
|
前端开发 JavaScript
javascript 搜索并高亮显示
2015年12月22日 15:45:08 星期二 情景: 用来筛选列表中的数据, 由于单条数据很简短, 没有用php+mysql去实现筛选功能, 只用javascript进行筛选, 匹配的高亮, 或者将不匹配的隐藏掉 效果图: html:  1 名称: 2 代码: 3 ...
897 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
280 2