VB仿jQuery图像切换效果

Carlven2012 2015-08-09 01:33:26
VB仿jQuery图像切换效果很难吗? 为什么jQuery里面很多超酷的效果实现起来都非常简单呢? VB或.Net等哪些语言实现这种图像效果很方便呢? 求大师介绍一下。 觉得VB实现 这些效果好难,想改学一种实现起来容易些的语言。请各位支支招( 主要用于桌面程序设计这个方面)
比如下面这些效果:
http://www.5icool.org/demo/2011/a00519/index4.html
http://www.beifengwang.com/js/1082_kan.shtml
...全文
2925 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Carlven2012 2015-08-13
  • 打赏
  • 举报
回复
引用 5 楼 Tiger_Zhao 的回复:
记错了,是 PlgBlt 平行四边形的例子:http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=13868 梯形的原理:PlgBlt
不过貌似PlgBlt 是用来画平行四边形的,不能画梯形等任意四边形的哦...
Tiger_Zhao 2015-08-13
  • 打赏
  • 举报
回复
看原理图。
梯形的上三角和下三角分别属于两个变形后的平行四边形,合起来就是梯形了。
Carlven2012 2015-08-12
  • 打赏
  • 举报
回复
引用 5 楼 Tiger_Zhao 的回复:
记错了,是 PlgBlt 平行四边形的例子:http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=13868 梯形的原理:PlgBlt
哦哦,谢了。 我就是想模仿一个jQuery的图片开门效果,改天弄好了发上来分享给大家!嘿嘿。
Tiger_Zhao 2015-08-12
  • 打赏
  • 举报
回复
记错了,是 PlgBlt
平行四边形的例子:http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=13868
梯形的原理:PlgBlt
舉杯邀明月 2015-08-12
  • 打赏
  • 举报
回复
这个,如果能调用DirectX 3D的接口来做,可能要稍简单些。
舉杯邀明月 2015-08-12
  • 打赏
  • 举报
回复
这个用VB来写,有点复杂啊………… 关键是“三维透视”的运算,那些“顶点坐标”的计算,够繁琐的。 不过,期待你的杰作。
Carlven2012 2015-08-11
  • 打赏
  • 举报
回复
我的意思是有点3D、或是图像变形、扭曲等切换效果的。 http://js.itivy.com/jiaoben1374/index.html
Tiger_Zhao 2015-08-11
  • 打赏
  • 举报
回复
看不到3D,不过一般矩形在3D视图中的变形用 API 的 StretchBlt 就可以啊。
Carlven2012 2015-08-11
  • 打赏
  • 举报
回复
引用 3 楼 Tiger_Zhao 的回复:
看不到3D,不过一般矩形在3D视图中的变形用 API 的 StretchBlt 就可以啊。
用StretchBlt可以3D变形吗? 意思是能把图片绘制成梯形、等任意四边开喽? 我还不知道呀, 有例子吗大哥?
Tiger_Zhao 2015-08-10
  • 打赏
  • 举报
回复
只有IE浏览器,看不到3D效果是什么。
模拟第一个链接的水平滑动,把图片下载到工程所在目录。
'窗体上添加2个CommandButton、1个PictureBox、1个Timer控件。'
Option Explicit

Const IMAGE_WIDTH As Long = 700
Const IMAGE_HEIGHT As Long = 420
Const SLIDE_STEP As Long = 140

Private m_ID As Long
Private m_thisImg As IPictureDisp
Private m_prevImg As IPictureDisp
Private m_thisX As Long
Private m_prevX As Long
Private m_Step As Long

Private Sub LoadImage()
Set m_prevImg = m_thisImg
Set m_thisImg = LoadPicture(App.Path & "\" & m_ID & ".jpg")
End Sub

Private Sub ShowImage()
Picture1.PaintPicture m_thisImg, m_thisX, 0
If Not m_prevImg Is Nothing Then
Picture1.PaintPicture m_prevImg, m_prevX, 0
End If
End Sub

Private Sub StartSlide()
Timer1.Enabled = True
Command1.Enabled = False
Command2.Enabled = False
End Sub

Private Sub StopSlide()
Timer1.Enabled = False
Command1.Enabled = True
Command2.Enabled = True
End Sub

Private Sub Command1_Click()
m_ID = ((m_ID - 2 + 6) Mod 6) + 1
LoadImage
m_thisX = IMAGE_WIDTH
m_prevX = 0
m_Step = -SLIDE_STEP
StartSlide
End Sub

Private Sub Command2_Click()
m_ID = (m_ID Mod 6) + 1
LoadImage
m_thisX = -IMAGE_WIDTH
m_prevX = 0
m_Step = SLIDE_STEP
StartSlide
End Sub

Private Sub Form_Load()
Me.ScaleMode = vbPixels

Picture1.ScaleMode = vbPixels
Picture1.BorderStyle = vbBSNone
Picture1.Width = IMAGE_WIDTH
Picture1.Height = IMAGE_HEIGHT

Command1.Caption = "<"
Command2.Caption = ">"
Timer1.Enabled = False
Timer1.Interval = 56

m_ID = 1
LoadImage
End Sub

Private Sub Picture1_Paint()
ShowImage
End Sub

Private Sub Timer1_Timer()
m_thisX = m_thisX + m_Step
m_prevX = m_prevX + m_Step
If (m_thisX = 0) Or (Sgn(m_thisX) = Sgn(m_Step)) Then
m_thisX = 0
Set m_prevImg = Nothing
StopSlide
End If

ShowImage
End Sub

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧