python前端jQuery综合应用

知识点预习
1.幻灯片的制作2.json数据格式及ajax

01- 轮播图-获取相关元素[mw_shl_code=applescript,true]var $slide = $(‘.slide‘), // 轮播区域的div

$slideList = $(‘.slide_list‘), // 轮播列表
$lis = $(‘.slide_list li‘),// 轮播中的四个li
$prevBtn = $(‘.prev‘), // 上一张按钮
$nextBtn = $(‘.next‘), // 下一张按钮
$pointsList = $(‘.points‘);// 小圆点列表[/mw_shl_code]

2- 轮播图-添加小圆点[mw_shl_code=applescript,true]// 1.根据图片张数动态添加小圆点
for (var i = 0; i < iPicCount; i++) {
$pointsList.append(‘<li></li>‘);
}
// 1.1 默认第0个小点高亮
$pointsList.children(‘:first‘).addClass(‘active‘);
[/mw_shl_code]
轮播图-监听小圆点事件 - 下一张[mw_shl_code=applescript,true] // 2.动画前的准备除了第一张 其它 都放到760的位置
$lis.not(‘:first‘).css({ ‘left‘: 760 });

var iNowIndex = 0; // 即将要上显示的这一张
var iPreviousIndex = 0; // 上一张,也是要让位置的这一张

// 2.1 点击小圆点进行图片移动动画
$pointsList.delegate(‘li‘, ‘click‘, function () {

    // 记录即将要显示的图片索引
    iNowIndex = $(this).index();
    // 动画移动
    fnMoveAnmation();
});

// 公共函数
function fnMoveAnmation() {
          // 小圆点高亮处理
          $pointsList.children().eq(iNowIndex).addClass(‘active‘).siblings().removeClass(‘active‘);
    // 显示下一张
    if (iNowIndex > iPreviousIndex) {

        // 让当前显示的图片从0移动到左边-760为要出现的让位置
        $lis.eq(iPreviousIndex).animate({ ‘left‘: -760 });
        // 让要出现的图片从原本的760位置移动到0的位置
        $lis.eq(iNowIndex).animate({ ‘left‘: 0 });

        // 记录这一次显示的索引 作为下一次动画时要让位置的索引
        iPreviousIndex = iNowIndex;
    } 

}[/mw_shl_code]

轮播图-小圆点事件 - 上一张[mw_shl_code=applescript,true] xxxxxxxxxx else { // 显示上一张 // 动画从左边向右移动的准备 $lis.eq(iNowIndex).css({ ‘left‘: -760 }); // 让当前显示的图片从0移动到右边760位置 $lis.eq(iPreviousIndex).animate({ ‘left‘: 760 }); // 让要显示的图片从原本-760的位置移动到0的位置 $lis.eq(iNowIndex).animate({ ‘left‘: 0 }); // 记录这一次显示的索引 作为下一次动画时要让位置的索引 iPreviousIndex = iNowIndex; }[/mw_shl_code]
轮播图-跨越式点击的BUG解决
重复点击同一个小点时bug
[mw_shl_code=applescript,true] function fnMoveAnmation() {
// 如果重复点击小点什么也不做
if (iNowIndex == iPreviousIndex) return;[/mw_shl_code]
[mw_shl_code=applescript,true]从右向左边滑动时
//解决跨越式点击BUG :抢先一步 将要出现的图片 丢到他该出现的位置 760
$lis.eq(iNowIndex).css({"left":760})

从左向右边滑动时
//解决跨越式点击BUG :抢先一步 将要出现的图片 丢到他该出现的位置 -760
$lis.eq(iNowIndex).css({"left":-760}) [/mw_shl_code]
轮播图-监听左边按钮的点击
[mw_shl_code=applescript,true]// 3.点击左边上一张按钮
$prevBtn.click(function () {

    iNowIndex--;
    fnMoveAnmation();
})
[/mw_shl_code]
轮播图-右侧按钮的点击
[mw_shl_code=applescript,true] // 4.点击右边下一张按钮
    $nextBtn.click(function () {
        iNowIndex++;
        fnMoveAnmation();
    })[/mw_shl_code]
fnMoveAnmation函数的调整
[mw_shl_code=applescript,true]// 如果最后一张后继续点击右边按钮,应该向左移动的方式来显示第0张
        if (iNowIndex > iPicCount - 1) {
            // 下一张时:最后一张的下一张是第0张
            iNowIndex = 0;
            // 动画从右边向左移动的准备
            $lis.eq(iNowIndex).css({ ‘left‘: 760 });
            // 让当前显示的图片从0移动到左边-760为要出现的让位置
            $lis.eq(iPreviousIndex).animate({ ‘left‘: -760 });
    } else if (iNowIndex < 0) { // 如果是第0张时继续点击左边上一张按钮

        // 上一张时:第0张的上一第应该是最后一张
        iNowIndex = iPicCount - 1;
        // 动画从左边向右移动的准备
        $lis.eq(iNowIndex).css({ ‘left‘: -760 });
        // 让当前显示的图片从0移动到右边760位置
        $lis.eq(iPreviousIndex).animate({ ‘left‘: 760 });
            } else {
            // 把正常情况下的左右滚动代码放在else里面
            }[/mw_shl_code]

轮播图- 左右按钮快速点击的bug
动画还没有执行完,点击左右按钮什么事件也不做
bIsAnmation = false; // 是否正在动画中
左右按钮点击事件中加入如果动画中直接返回
进入fnMoveAnmation里时把bIsAnmation改为true
最后的动画执行完成的回调中把bIsAnmation再改回为false;
轮播图-自动播放
[mw_shl_code=applescript,true] // 自动滚动
function fnAutoMove() {
iNowIndex++;
fnMoveAnmation();
}

// 5.定时器自动滚动
var oTimer = setInterval(fnAutoMove, 3000);[/mw_shl_code]

轮播图-鼠标事件
[mw_shl_code=applescript,true]//6.鼠标的事件
$slide.mouseenter(function () {
clearInterval(oTimer);
});

$slide.mouseleave(function () {
    oTimer = setInterval(fnAutoMove, 3000);
})

[/mw_shl_code]
JSON概述和书写格式
JSON是 JavaScript Object Notation 的首字母缩写,单词的意思是JavaScript对象表示法,这里说的JSON指的是类似于JavaScript对象的一种数据格式,目前这种数据格式比较流行,逐渐替换掉了传统的XML数据格式。
JSON格式的数据:
[mw_shl_code=applescript,true]{
"name":"tom",
"age":18
}[/mw_shl_code]
与JavaScript对象不同的是,JSON数据格式的属性名称和字符串值需要用双引号引起来,用单引号或者不用引号会导致读取数据错误。
[mw_shl_code=applescript,true]["tom",18,"programmer"][/mw_shl_code]
3- ajax加载JSON数据
$.ajax使用方法
常用参数:
1、url 请求地址2、type 请求方式,默认是‘GET‘,常用的还有‘POST‘ 3、dataType 设置返回的数据格式,常用的是‘json‘格式,也可以设置为‘html‘ 4、data 设置发送给服务器的数据 5、success 设置请求成功后的回调函数 6、error 设置请求失败后的回调函数 7、async 设置是否异步,默认值是‘true‘,表示异步

以前的写法:
[mw_shl_code=applescript,true]$.ajax({
url: ‘js/data.json‘,
type: ‘GET‘,
dataType: ‘json‘,
data:{‘aa‘:1}
success:function(data){
alert(data.name);
},
error:function(){
alert(‘服务器超时,请重试!‘);
}
});
[/mw_shl_code]
新的写法(推荐):
[mw_shl_code=applescript,true]$.ajax({
url: ‘js/data.json‘,
type: ‘GET‘,
dataType: ‘json‘,
data:{‘aa‘:1}
})
.done(function(data) {
alert(data.name);
})
.fail(function() {
alert(‘服务器超时,请重试!‘);
});

    // data.json里面的数据: {"name":"tom","age":18}[/mw_shl_code]

ajax天天生鲜局部刷新
准备好要请求的JSON数据
请求后先验证数据,再写功能代码

15- jsonp的原理
ajax只能请求同一个域下的数据或资源,有时候需要跨域请求数据,就需要用到jsonp技术,jsonp可以跨域请求数据,它的原理主要是利用了script标签可以跨域链接资源的特性。jsonp和ajax原理完全不一样,不过jQuery将它们封装成同一个函数。

16- jsonp跨域请求
[mw_shl_code=applescript,true] xxxxxxxxxx $.ajax({ url:‘js/data.js‘, type:‘get‘, dataType:‘jsonp‘, jsonpCallback:‘fnBack‘}).done(function(data){ alert(data.name);}).fail(function() { alert(‘服务器超时,请重试!‘);});// data.js里面的数据: fnBack({"name":"tom","age":18});[/mw_shl_code]
仿360搜索
[mw_shl_code=applescript,true] $(function(){
$(‘#txt01‘).keyup(function(){
var sVal = $(this).val();
$.ajax({
url:‘https://sug.so.360.cn/suggest‘,
type:‘get‘,
dataType:‘jsonp‘,
//给服务器传递参数
data: {word: sVal}
})
.done(function(data){
var aData = data.s;
$(‘.list‘).empty();
for(var i=0;i<aData.length;i++)
{
var $li = $(‘<li>‘+ aData +‘</li>‘);
$li.appendTo($(‘.list‘));
}
})
})
})[/mw_shl_code]

原文地址:http://blog.51cto.com/13517854/2328487

时间: 2024-10-13 10:15:12

python前端jQuery综合应用的相关文章

python前端jQuery高级

知识点预习1.jQuery事件冒泡2.事件委托 3.元素节点操作 4.正则表达式及表单验证实例 01- submit事件 //监听 提交的事件 $("form").submit(function (abc) { //阻止系统的默认行为 // abc.preventDefault(); return false; }) 事件冒泡的原理在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件

ASP.NET 登录中Cookies和验证和前端Jquery

1.登陆中的验证问题 登录中用户名和密码的判断,一是怎么判断,需要调用业务逻辑层的判断方法,这里是单独拿出一个层Controls来进行授权和登录的验证.那怎么进行验证结果的返回,正确进入下个页面错误返回登录页面,首先想到的放法写一个bool的方法,正确进入下一个页面,错误返回登录页面.这里用的一个比较专业的方法是在Controls设置一个数据返回接口类DataResult.cs里面定义好code,Message,Data分别用于进行登录验证,错误信息返回,数据返回(这里暂时用不到)至于为什么这样

Python之Web前端jQuery扩展

Python之Web前端: 一. jQuery表单验证 二. jQuery扩展 三. 滚动菜单 一. jQuery表单验证: 以下表单验证使用两种方式简单实现: (一). 使用DOM表单验证 (二). 使用jQuery表单验证 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>表单验证DOM<

python学习之路前端-jQuery

jQuery简介 JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器.jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用).events.实现动画效果,并且方便地为网站提供AJAX交互.jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得

python Flask JQuery使用说明

0.前言 近期因为某种原因再次学习Flask框架.借助博客整理相关内容.Flask框架和Apache+PHP存在少许不同,Flask框架中JS和CSS文件存放于一个相对固定的位置. 普通情况下,位于static文件夹下(见图1 文件夹结构). 本文结合一个很easy的加法样例试图说明Flask框架中JQuery和Ajax的使用方法. 这个样例将执行在树莓派中,请注意windows平台和linux平台也能够执行该演示样例,python具有良好的跨平台性能. [代码仓库] 代码仓库位于Bitbuck

python 前端、框架和其他(155题)

1 谈谈你对http协议的认识.2 谈谈你对websocket协议的认识.3 什么是magic string?4 如何创建响应式布局?5 你曾经使用过哪些前端框架?6 什么是ajax请求?并使用jQuery和XMLHttpRequest对象实现一个ajax请求.7 如何在前端实现轮训?8 如何在前端实现长轮训?9 vuex的作用?10 vue中的路由的拦截器的作用?11 axios的作用?12 列举vue的常见指令.13 简述jsonp及实现原理?14 是什么cors ?15 列举Http请求中

前端—jQuery

什么是jQuery? jQuery是一个工具,简单方便实现DOM操作,python里可以叫模块,但在前端叫“类库“” jQUery 我们在声明一个jQuery对象变量的时候在变量名前面加上$: var $variable = jQuery对像 var variable = DOM对象 $variable[0]//jQuery对象转成DOM对象 jQUery基本语法 $(selector).action(). 查找标签 层级选择器: $("x y");// x的所有后代y(子子孙孙) $

Python Day17(jQuery)

一.概述 1.简介 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多的事情.它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互. jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口

Python学习 —— 阶段综合练习二

综合之前的类的学习,做以下实例练习:(建议先不要看代码,自己先试着写:代码仅供参考,有多种实现方法) 1. Triangle  & Equilateral 1). 创建class Triangle 表示三角形,包含三个属性值:angle1.angle2.angle3: 类方法 check_angles():若三个角相加 == 180,return True:若不是,return False 1 class Triangle(object): 2 def __init__(self,angle1,