当前位置:首页 > 代码 > 正文

jquery商品展示源代码(jquery精品展示)

admin 发布:2022-12-19 20:20 157


今天给各位分享jquery商品展示源代码的知识,其中也会对jquery精品展示进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何正确阅读jquery源码和jquery插件源码

1. jQuery 里面有很多东西是出于兼容性,历史遗留。

比如 .ready() 之类的函数,为什么会很scroll 有关,那是为了兼容某些ie。这种代码对于编程思想来说不仅没用,而且是杂音,你要筛选出来就得了解这段代码的变动,费心费力得不偿失。

2. jQuery 里面的代码不一定是最优的,例如事件委托,每一次事件触发都要调用选择器,实际上是效率很低的。但是我又比较懒,没有提交patch。

3. jQuery 实际上很容易写出来一个 barebone alternative,在使用的过程中多想,多思考多总结就可以了。

4. jQuery 这类框架里真正有思维挑战性的东西不多,一半以上是堆代码而已,剩下的一点价值在于架构、抽象、扩展能力。

5. 我有一句话与所有的同行分享:工程师让需求成为现实,优秀工程师化复杂为简单,顶尖工程师变不可能为可能;架构师掌握现在,优秀架构师展望未来,顶尖架构师创造时代。

jQuery 的设计目的是,让前端工程师的工作更简单更轻松,但它并不适合所有的前端工程师,假如你的目标是成为优秀架构师、顶尖架构师的话,你在jQuery里也看不清未来。

JQuery或JS实现商品加入对比的代码

你好!

页面中显示的楼盘对比的导航,其中js有这样一段代码:

script

.....

init_comp_bar();

.....

/script

其中:

function init_comp_bar() {

        ............

        set_fixed_position();

        initCompareBar();

        show_change(0);

        setInterval(initCompareBar, 2000);    //此句为关键

}

而这个initCompareBar 就是读取cookies并显示的方法:

function initCompareBar() {

        var compCookie = Cookie.getCookie("wz_houseapp_compare");

        if (g_comp_cookie == compCookie) {

                return false;

        } else {

                g_comp_cookie = compCookie;

        }

        if (g_comp_cookie) {

                var cookieArr = g_comp_cookie.split("||");

                if (cookieArr.length  2) {

                        cmp_cont_change(0);

                        return false;

                }

                var cur_city = cookieArr[0];

                if (cur_city != g_cur_city || cookieArr[1].length  2) {

                        cmp_cont_change(0);

                        return false;

                }

                var cmp_arr = cookieArr[1].split("|");

                var cmp_len = cmp_arr.length;

                if (cmp_len  1) {

                        cmp_cont_change(0);

                        return false;

                }

                var itemStr = "";

                for (var i = 0; i  cmp_len; i++) {

                        var house_info = cmp_arr[i].split(",");

                        itemStr += 'lispan title="删除" onclick="removeCompareItem(' + house_info[1] + ')"删除/span';

                        itemStr += 'a href="' + cur_city + '_' + house_info[1] + '/" target="_blank" ' + house_info[0] + '/a/li';

                }

                Fid("cmp_cont_item").innerHTML = itemStr;

                cmp_cont_change(cmp_len);

        } else {

                cmp_cont_change(0);

        }

        setTopFrame();

}

希望对你有帮助!!

jquery each()源代码

复制代码

代码如下:

//

args

is

for

internal

usage

only

each:

function(

object,

callback,

args

)

{

var

name,

i

=

0,

length

=

object.length,

isObj

=

length

===

undefined

||

jQuery.isFunction(object);

if

(

args

)

{

if

(

isObj

)

{

for

(

name

in

object

)

{

if

(

callback.apply(

object[

name

],

args

)

===

false

)

{

break;

}

}

}

else

{

for

(

;

i

length;

)

{

if

(

callback.apply(

object[

i++

],

args

)

===

false

)

{

break;

}

}

}

//

A

special,

fast,

case

for

the

most

common

use

of

each

}

else

{

if

(

isObj

)

{

for

(

name

in

object

)

{

if

(

callback.call(

object[

name

],

name,

object[

name

]

)

===

false

)

{

break;

}

}

}

else

{

for

(

var

value

=

object[0];

i

length

callback.call(

value,

i,

value

)

!==

false;

value

=

object[++i]

)

{}

}

}

return

object;

},

分析:jquery文档说

each(callback)作用是以每一个匹配的元素作为上下文来执行一个函数。就是用each来遍历数组,来执行同一个方法

这个方法的实现最关键的是:call与apply的用法:call(apply)就是将函数的对象的从初始的上下文改为thisObj指向的对象,

就是说用thisObj来代替原来的对象来执行方法:call与apply的第一个参数为this指向的对象,而后面的参数都下传给函数的,

call传给函数的参数用逗号分隔而apply则为一个数组。

//1.callback.apply(

object[

name

],

args

)

//2.callback.call(

object[

name

],

name,

object[

name

]

)

jquery双击文本框出现源代码?

JQ应该不会无缘无故响应input的双击事件的,可能你的JQ代码没写好,你要的只是input的val(),而不是html()。再检查下涉及这个input的代码是不是有“.html()”或者你的其他双击事件的绑定的选择器涵是否盖了当前的input(比如多个input的外层都使用了相同的class,又或者你偷懒写了类似$('input').....的代码——所有的input都执行相同的操作,有一个算一个)。个人觉得:在JQ中,选择器用Id比用class/tagname要“安全”得多。

JavaScript 商品展示图片左右滚动代码怎么写?

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""

html xmlns=""

head

meta http-equiv="Content-Type" content="text/html; charset=gb2312" /

titleJavaScript 图片滑动切换效果/title

script type="text/javascript"

var $ = function (id) {

return "string" == typeof id ? document.getElementById(id) : id;

};

var Extend = function(destination, source) {

for (var property in source) {

destination[property] = source[property];

}

return destination;

}

var CurrentStyle = function(element){

return element.currentStyle || document.defaultView.getComputedStyle(element, null);

}

var Bind = function(object, fun) {

var args = Array.prototype.slice.call(arguments).slice(2);

return function() {

return fun.apply(object, args.concat(Array.prototype.slice.call(arguments)));

}

}

var Tween = {

Quart: {

easeOut: function(t,b,c,d){

return -c * ((t=t/d-1)*t*t*t - 1) + b;

}

},

Back: {

easeOut: function(t,b,c,d,s){

if (s == undefined) s = 1.70158;

return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;

}

},

Bounce: {

easeOut: function(t,b,c,d){

if ((t/=d) (1/2.75)) {

return c*(7.5625*t*t) + b;

} else if (t (2/2.75)) {

return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;

} else if (t (2.5/2.75)) {

return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;

} else {

return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;

}

}

}

}

//容器对象,滑动对象,切换数量

var SlideTrans = function(container, slider, count, options) {

this._slider = $(slider);

this._container = $(container);//容器对象

this._timer = null;//定时器

this._count = Math.abs(count);//切换数量

this._target = 0;//目标值

this._t = this._b = this._c = 0;//tween参数

this.Index = 0;//当前索引

this.SetOptions(options);

this.Auto = !!this.options.Auto;

this.Duration = Math.abs(this.options.Duration);

this.Time = Math.abs(this.options.Time);

this.Pause = Math.abs(this.options.Pause);

this.Tween = this.options.Tween;

this.onStart = this.options.onStart;

this.onFinish = this.options.onFinish;

var bVertical = !!this.options.Vertical;

this._css = bVertical ? "top" : "left";//方向

//样式设置

var p = CurrentStyle(this._container).position;

p == "relative" || p == "absolute" || (this._container.style.position = "relative");

this._container.style.overflow = "hidden";

this._slider.style.position = "absolute";

this.Change = this.options.Change ? this.options.Change :

this._slider[bVertical ? "offsetHeight" : "offsetWidth"] / this._count;

};

SlideTrans.prototype = {

//设置默认属性

SetOptions: function(options) {

this.options = {//默认值

Vertical: true,//是否垂直方向(方向不能改)

Auto: true,//是否自动

Change: 0,//改变量

Duration: 50,//滑动持续时间

Time: 10,//滑动延时

Pause: 2000,//停顿时间(Auto为true时有效)

onStart: function(){},//开始转换时执行

onFinish: function(){},//完成转换时执行

Tween: Tween.Quart.easeOut//tween算子

};

Extend(this.options, options || {});

},

//开始切换

Run: function(index) {

//修正index

index == undefined (index = this.Index);

index 0 (index = this._count - 1) || index = this._count (index = 0);

//设置参数

this._target = -Math.abs(this.Change) * (this.Index = index);

this._t = 0;

this._b = parseInt(CurrentStyle(this._slider)[this.options.Vertical ? "top" : "left"]);

this._c = this._target - this._b;

this.onStart();

this.Move();

},

//移动

Move: function() {

clearTimeout(this._timer);

//未到达目标继续移动否则进行下一次滑动

if (this._c this._t this.Duration) {

this.MoveTo(Math.round(this.Tween(this._t++, this._b, this._c, this.Duration)));

this._timer = setTimeout(Bind(this, this.Move), this.Time);

}else{

this.MoveTo(this._target);

this.Auto (this._timer = setTimeout(Bind(this, this.Next), this.Pause));

}

},

//移动到

MoveTo: function(i) {

this._slider.style[this._css] = i + "px";

},

//下一个

Next: function() {

this.Run(++this.Index);

},

//上一个

Previous: function() {

this.Run(--this.Index);

},

//停止

Stop: function() {

clearTimeout(this._timer); this.MoveTo(this._target);

}

};

/script

/head

body

style type="text/css"

.container,.container img {

width: 280px;

height: 200px;

}

.container {

border: 1px solid #333;

}

.container img {

border: 0;

}

/style

div class="container" id="idContainer"

table id="idSlider" border="0" cellpadding="0" cellspacing="0"

tr

td

img src="image/11.jpg" /

/td

/tr

tr

td

img src="image/di.jpg" /

/td

/tr

tr

td

img src="image/head.gif" /

/td

/tr

/table

/div

br /

br /

style type="text/css"

.num {

position: absolute;

right: 5px;

bottom: 5px;

}

.num li {

float: left;

list-style: none;

color: #fff;

text-align: center;

line-height: 16px;

width: 16px;

height: 16px;

font-family: Arial;

font-size: 12px;

cursor: pointer;

margin: 1px;

border: 1px solid #707070;

background-color: #060a0b;

}

.num li.on {

line-height: 18px;

width: 18px;

height: 18px;

font-size: 14px;

border: 0;

background-color: #ce0609;

font-weight: bold;

}

/style

div class="container" id="idContainer2"

table id="idSlider2" border="0" cellpadding="0" cellspacing="0"

tr

td

img src="image/11.jpg" /

/td

td

img src="image/di.jpg" /

/td

td

img src="image/head.gif" /

/td

/tr

/table

ul class="num" id="idNum"

/ul

/div

br /

div

input id="idAuto" type="button" value="停止" /

input id="idPre" type="button" value="" /

input id="idNext" type="button" value="" /

select id="idTween"

option value="0"

默认缓动

/option

option value="1"

方式1

/option

option value="2"

方式2

/option

/select

/div

script

new SlideTrans("idContainer", "idSlider", 3).Run();

///////////////////////////////////////////////////////////

var forEach = function(array, callback, thisObject){

if(array.forEach){

array.forEach(callback, thisObject);

}else{

for (var i = 0, len = array.length; i len; i++) { callback.call(thisObject, array[i], i, array); }

}

}

var st = new SlideTrans("idContainer2", "idSlider2", 3, { Vertical: false });

var nums = [];

//插入数字

for(var i = 0, n = st._count - 1; i = n;){

(nums[i] = $("idNum").appendChild(document.createElement("li"))).innerHTML = ++i;

}

forEach(nums, function(o, i){

o.onmouseover = function(){ o.className = "on"; st.Auto = false; st.Run(i); }

o.onmouseout = function(){ o.className = ""; st.Auto = true; st.Run(); }

})

//设置按钮样式

st.onStart = function(){

forEach(nums, function(o, i){ o.className = st.Index == i ? "on" : ""; })

}

$("idAuto").onclick = function(){

if(st.Auto){

st.Auto = false; st.Stop(); this.value = "自动";

}else{

st.Auto = true; st.Run(); this.value = "停止";

}

}

$("idNext").onclick = function(){ st.Next(); }

$("idPre").onclick = function(){ st.Previous(); }

$("idTween").onchange = function(){

switch (parseInt(this.value)){

case 2 :

st.Tween = Tween.Bounce.easeOut; break;

case 1 :

st.Tween = Tween.Back.easeOut; break;

default :

st.Tween = Tween.Quart.easeOut;

}

}

st.Run();

/script

/body/html

关于jquery商品展示源代码和jquery精品展示的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/22622.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载