Ⅰ 在JQuery中,怎样让一张图片做曲线运动
这个要用到抛物线函数,不过别费那劲,给你找个了插件,参考下就知道了。
路径滚动动画插件 jQuery Scroll Path
Ⅱ jquery曲线飞入购物车效果遇到一点小问题
提供一个思路,仅供参考:
假设你用的是animate,再假设你是通过改变"运动块"的left值和top值来实现专运动的。
那么,既然属是曲线,就会有公式。假如一个抛物线的公式:x2=-2py(x>0)
那么,你就可以写一个循环,定义一个变量来表达left和top值,直到到达指定位置,循环结束。示例代码:
while($top<900){
$left=-sqrt(-2p*$top);
$('.div').animate({left:$left,top:$top},100);
}
这是根据上面假设的抛物线公式确定的。不知道你是否能看懂。
Ⅲ jquery抛物线动画代码怎么实现
方法/步骤
1
首先需要引入一个jquery.fly.min.js文件(可自行搜索,也可以在本人的网络云盘中找到)
2
设置抛物线的位置(起点也可以是整个页面的可点击区域,即body):
抛物线起点,此例中为.left_btn(标签的classname)
抛物线终点,此例中为.gwcimg(标签的classname)
3
创建JS方法:
$('.left_btn').on('click', addProct);
function addProct(event){
var offset = $(".gwcimg").offset(),
//抛物线图片,可自行更改
flyer = $('<img src="brandmarket/image/gwc.png" width="36" height="36">');
flyer.fly({
start: {
left: event.pageX,
top: event.pageY
},
end: {
left: offset.left,
top: offset.top,
//抛物线完成后留在页面上的图片大小
width: 20,height: 20
}
});
}
4
大致有两种效果,一种是每添加一次就在购物车的数字上加一,数字显示的位置可以用CSS样式控制,然后把上一步中“抛物线完成后留在页面上的图片大小”中宽高值都设置为0,效果如下:
5
另一种是将数字用图片代替,此为默认的效果,改变浏览器大小的时候,用来代替的图片会一直停留在绝对位置,效果如下:
http://jingyan..com/article/ceb9fb10c13bac8cac2ba05a.html
Ⅳ 如何用angularjs实现抛物线购物车效果
、使用任何语言创建一个服务端:
public class ShoppingCar
{
public string Title { get; set; }
public decimal UnitPrice { get; set; }
public int Count { get; set; }
}
public ActionResult GetCar()
{
List<ShoppingCar> cars = new List<ShoppingCar>
{
new ShoppingCar { Title="苹果",Count=1,UnitPrice=2.5m},
new ShoppingCar { Title="香蕉",Count=3,UnitPrice=1.5m},
new ShoppingCar { Title="苦瓜",Count=1,UnitPrice=3.5m},
new ShoppingCar { Title="黄瓜",Count=3,UnitPrice=2.2m}
};
return Json(cars,JsonRequestBehavior.AllowGet);
}
Ⅳ android想要画一个抛物线,怎么实现
效果图中,抛物线的动画即是由SurfaceView实现的。底部栏中的文字翻转详情相关帖子:
[Android] 文字翻转动画的实现
需求:
1.实现抛物线动画
1.1 设计物理模型,能够根据时间变量计算出某个时刻图片的X/Y坐标。
1.2 将图片高频率(相比于UI线程的缓慢而言)刷新到界面中。这儿需要实现将脏界面清屏及刷新操作。
2.文字翻转动画(已解决,见上面的帖子链接)
下面来逐一解决所提出的问题。
-----------------------------------------------------------------------------
分隔线内容与Android无关,请慎读,勿拍砖。谢啦
1.1 设计物理模型,如果大家还记得初中物理时,这并不难。自己写的草稿图见下:
可以有:图片要从高度为H的位置下落,并且第一次与X轴碰撞时会出现能量损失,至原来的N%。并且我们需要图片的最终落点离起始位置在X轴上的位移为L,默认存在重力加速度g。
详细的物理分析见上图啦,下面只说代码中如何实现,相关代码在PhysicalTool.java。
第一次下落过程所耗时t1与高度height会有如下关系:
[java] view plain
t1 = Math.sqrt(2 * height * 1.0d / GRAVITY);
[java] view plain
t1 = Math.sqrt(2 * height * 1.0d / GRAVITY);
第一次与X轴碰撞后上升至最高点的耗时t2与高度 N%*height会有:
[java] view plain
t2 = Math.sqrt((1 - WASTAGE) * 2 * height * 1.0d / GRAVITY);
[java] view plain
t2 = Math.sqrt((1 - WASTAGE) * 2 * height * 1.0d / GRAVITY);
那么总的动画时间为(t1 + t2 + t2),则水平位移速度有(width为X轴总位移):
[java] view plain
velocity = width * 1.0d / (t1 + 2 * t2);
[java] view plain
velocity = width * 1.0d / (t1 + 2 * t2);
则根据时间计算图片的实时坐标有:
PhysicalTool.comput()
[java] view plain
double used = (System.currentTimeMillis() - startTime) * 1.0d / 1000;
x = velocity * used;
if (0 <= used && used < t1) {
y = height - 0.5d * GRAVITY * used * used;
} else if (t1 <= used && used < (t1 + t2)) {
double tmp = t1 + t2 - used;
y = (1 - WASTAGE) * height - 0.5d * GRAVITY * tmp * tmp;
} else if ((t1 + t2) <= used && used < (t1 + 2 * t2)) {
double tmp = used - t1 - t2;
y = (1 - WASTAGE) * height - 0.5d * GRAVITY * tmp * tmp;
}
[java] view plain
double used = (System.currentTimeMillis() - startTime) * 1.0d / 1000;
x = velocity * used;
if (0 <= used && used < t1) {
y = height - 0.5d * GRAVITY * used * used;
} else if (t1 <= used && used < (t1 + t2)) {
double tmp = t1 + t2 - used;
y = (1 - WASTAGE) * height - 0.5d * GRAVITY * tmp * tmp;
} else if ((t1 + t2) <= used && used < (t1 + 2 * t2)) {
double tmp = used - t1 - t2;
y = (1 - WASTAGE) * height - 0.5d * GRAVITY * tmp * tmp;
}
Android无关内容结束了。
----------------------------------------------------------------------------------------
1.2 SurfaceView刷新界面
SurfaceView是一个特殊的UI组件,特殊在于它能够使用非UI线程刷新界面。至于为何具有此特殊性,将在另一个帖子"SurfaceView 相关知识笔记"中讨论,该帖子将讲述SurfaceView、Surface、ViewRoot、Window Manager/Window、Canvas等之间的关系。
使用SurfaceView需要自定义组件继承该类,并实现SurfaceHolder.Callback,该回调提供了三个方法:
[java] view plain
surfaceCreated()//通知Surface已被创建,可以在此处启动动画线程
surfaceChanged()//通知Surface已改变
surfaceDestroyed()//通知Surface已被销毁,可以在此处终止动画线程
[java] view plain
surfaceCreated()//通知Surface已被创建,可以在此处启动动画线程
surfaceChanged()//通知Surface已改变
surfaceDestroyed()//通知Surface已被销毁,可以在此处终止动画线程
SurfaceView使用有一个原则,即该界面操作必须在surfaceCreated之后及surfaceDestroyed之前。该回调的监听通过SurfaceHolder设置。代码如下:
[java] view plain
//于SurfaceView类中,该类实现SurfaceHolder.Callback接口,如本例中的ParabolaView
SurfaceHolder holder = getHolder();
holder.addCallback(this);
[java] view plain
//于SurfaceView类中,该类实现SurfaceHolder.Callback接口,如本例中的ParabolaView
SurfaceHolder holder = getHolder();
holder.addCallback(this);
示例代码中,通过启动DrawThread调用handleThread()实现对SurfaceView的刷新。
刷新界面首先需要执行holder.lockCanvas()锁定Canvas并获得Canvas实例,然后进行界面更新操作,最后结束锁定Canvas,提交界面更改,至Surface最终显示在屏幕上。
代码如下:
[java] view plain
canvas = holder.lockCanvas();
… … … …
… … … …
canvas.drawBitmap(bitmap, x, y, paint);
holder.unlockCanvasAndPost(canvas);
[java] view plain
canvas = holder.lockCanvas();
… … … …
… … … …
canvas.drawBitmap(bitmap, x, y, paint);
holder.unlockCanvasAndPost(canvas);
本例中,需要清除屏幕脏区域,出于简便的做法,是将整个SurfaceView背景重复地设置为透明,代码为:
[java] view plain
canvas.drawColor(Color.TRANSPARENT, android.graphics.PorterDuff.Mode.CLEAR);
[java] view plain
canvas.drawColor(Color.TRANSPARENT, android.graphics.PorterDuff.Mode.CLEAR);
对于SurfaceView的操作,下面这个链接讲述得更详细,更易理解,推荐去看下:
Android开发之SurfaceView
惯例,Java代码如下,XML请自行实现
本文由Sodino所有,转载请注明出处:http://blog.csdn.net/sodino/article/details/7704084
[java] view plain
ActSurfaceView.java
package lab.sodino.surfaceview;
import lab.sodino.surfaceview.RotateAnimation.InterpolatedTimeListener;
import android.app.Activity;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Handler.Callback;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
public class ActSurfaceView extends Activity implements OnClickListener, ParabolaView.ParabolaListener, Callback,
InterpolatedTimeListener {
public static final int REFRESH_TEXTVIEW = 1;
private Button btnStartAnimation;
/** 动画界面。 */
private ParabolaView parabolaView;
/** 购物车处显示购物数量的TextView。 */
private TextView txtNumber;
/** 购物车中的数量。 */
private int number;
private Handler handler;
/** TextNumber是否允许显示最新的数字。 */
private boolean enableRefresh;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
handler = new Handler(this);
number = 0;
btnStartAnimation = (Button) findViewById(R.id.btnStartAnim);
btnStartAnimation.setOnClickListener(this);
parabolaView = (ParabolaView) findViewById(R.id.surfaceView);
parabolaView.setParabolaListener(this);
txtNumber = (TextView) findViewById(R.id.txtNumber);
}
public void onClick(View v) {
if (v == btnStartAnimation) {
LogOut.out(this, "isShowMovie:" + parabolaView.isShowMovie());
if (parabolaView.isShowMovie() == false) {
number++;
enableRefresh = true;
parabolaView.setIcon(BitmapFactory.decodeResource(getResources(), R.drawable.icon));
// 设置起始Y轴高度和终止X轴位移
parabolaView.setParams(200, ((ViewGroup) txtNumber.getParent()).getLeft());
parabolaView.showMovie();
}
}
}
public void onParabolaStart(ParabolaView view) {
}
public void onParabolaEnd(ParabolaView view) {
handler.sendEmptyMessage(REFRESH_TEXTVIEW);
}
public boolean handleMessage(Message msg) {
switch (msg.what) {
case REFRESH_TEXTVIEW:
if (txtNumber.getVisibility() != View.VISIBLE) {
txtNumber.setVisibility(View.VISIBLE);
}
RotateAnimation anim = new RotateAnimation(txtNumber.getWidth() >> 1, txtNumber.getHeight() >> 1,
RotateAnimation.ROTATE_INCREASE);
anim.setInterpolatedTimeListener(this);
txtNumber.startAnimation(anim);
break;
}
return false;
}
@Override
public void interpolatedTime(float interpolatedTime) {
// 监听到翻转进度过半时,更新txtNumber显示内容。
if (enableRefresh && interpolatedTime > 0.5f) {
txtNumber.setText(Integer.toString(number));
// Log.d("ANDROID_LAB", "setNumber:" + number);
enableRefresh = false;
}
}
}
Ⅵ 什么是前端开发
我们先来复看看前端是什么,用官方的制定义,就是网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。
用我们的话来说,前端就是网页给访问网站的人看的内容和页面,而前端开发顾名思义就是这些内容的制作,也就是代码的实现。不过,现在的前端可不仅仅停留在以图片和文字为主,用户使用网站的行为也以浏览为主。而现在的前端开发使得现代网页更加美观,交互效果显著,功能更加强大。
前端开发主要是由三种基本语言构成,HTML,CSS及JavaScript。在页面的布局时, HTML将元素进行定义,CSS对展示的元素进行定位,再通过JavaScript实现相应的效果和交互,三种基础知识必须熟练掌握,才能运用到开发工具上,设计出高质量的作品。
在前端开发时,拥有一款熟练上手的工具相当重要。我们比较常用的有Dreamweaver:,Sublime,HBuilder,Sublime Text等。在熟练掌握之后,就可以尝试新的工具,比如FontelloFontello、Secureheaders等
Ⅶ Jquery商品抛物线飞入购物车代码
这个建议你去找现成js。。给你提供一个地址。。
http://www.zhangxinxu.com/wordpress/?p=3855
里面有现成的方法。。
张鑫专旭同学的博客属里面有这样的方法。。你可以去找的。
zhangxinxu.com/study/201312/js-parabola-shopping.html
就是这个地址啦。跟你这个一样的效果