日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Silverlight實(shí)現(xiàn)簡單鼠標(biāo)手勢控制頁面滾動(dòng)

上圖藍(lán)色部分就是鼠標(biāo)手勢控制的部分,劃過這塊區(qū)域,瀏覽器的滾動(dòng)條就會(huì)做出相應(yīng)的反應(yīng)。我寫的這個(gè)程序只能適合在IE,F(xiàn)irefox我測試了一下沒有反應(yīng),其他瀏覽器我并沒有進(jìn)行測試。

這個(gè)程序的設(shè)計(jì)目標(biāo):用Silverlight實(shí)現(xiàn)一個(gè)浮動(dòng)在頁面右下角的鼠標(biāo)手勢控制塊,讓用戶用鼠標(biāo)手勢控制頁面滾動(dòng),提供更好的用戶瀏覽體驗(yàn)。

鼠標(biāo)手勢設(shè)計(jì)計(jì)劃:

1.制作一個(gè)浮動(dòng)DIV,承載Silverlight。

2.實(shí)現(xiàn)鼠標(biāo)移動(dòng)方向與速度識(shí)別

3.調(diào)用js控制scrollbar

4.測試

鼠標(biāo)手勢詳細(xì)步驟:

1.制作一個(gè)浮動(dòng)DIV,承載Silverlight。

Code
 1

 2  
       type="application/x-silverlight-2" width="100%" height="100%">
 3             
 4             
 5             
 6             
 7      
 8     
 9    
       style="text-decoration: none;">
10   
      alt="獲取 Microsoft Silverlight" style="border-style: none"/>
11             

12         

用id為silverlightControlHost的DIV來承載Silverlight。用下面的js代碼來使div浮動(dòng):
 

Code
 1
15 

2.實(shí)現(xiàn)鼠標(biāo)移動(dòng)方向與速度識(shí)別

Code
 1 public MainPage()
 2        {
 3            InitializeComponent();
 4            timer.Completed += new EventHandler(timer_Completed);
 5        }
 6
 7        void timer_Completed(object sender, EventArgs e)
 8        {
 9            //throw new NotImplementedException();
10            if (Math.Abs(v_x) <= V_Min && Math.Abs(v_y) <= V_Min)
11            {
12                v_x = 0;
13                v_y = 0;
14                const_time = 0;
15                Current_Time = 0;
16            }
17            else
18            {
19                if (Current_Time < const_time)
20                {
21                    Current_Time++;
22                }
23                else
24                {
25                    if (Math.Abs(v_x) > V_Min)
26                    {
27                        v_x = Math.Sign(v_x) * (Math.Abs(v_x) - Math.Abs(dec));
28                    }
29                    if (Math.Abs(v_y) > V_Min)
30                    {
31                        v_y = Math.Sign(v_y) * (Math.Abs(v_y) - Math.Abs(dec));
32                    }
33                }
34                ScollBy(v_x, v_y);
35                timer.Begin();
36            }
37        }
38        //慣性計(jì)算
39        double dec = 0.3;
40        const double V_Min = 0.3;
41        double Current_Time = 0;
42
43
44        Point StartPoint;//開始點(diǎn)
45        Point EndPoint;//結(jié)束點(diǎn)
46        List TempPoints = new List();//點(diǎn)集合
47        bool IsRecording = true;//是否錄制
48        double v_x;
49        double v_y;
50        double const_time;
51        public Storyboard timer = new Storyboard() { Duration = new Duration(new TimeSpan(0, 0, 0, 0, 10)) };
52        //timer.Interval=10;
53       
54        private void MainInput_MouseMove(object sender, MouseEventArgs e)
55        {
56            if (IsRecording)
57            {
58                TempPoints.Add(e.GetPosition(null));
59            }
60        }
61
62        private void MainInput_MouseEnter(object sender, MouseEventArgs e)
63        {
64            P.Points.Clear();
65            P.Points.Add(e.GetPosition(null));
66            IsRecording = true;
67            StartPoint = e.GetPosition(null);
68            TempPoints.Clear();
69            TempPoints.Add(StartPoint);
70        }
71
72        private void MainInput_MouseLeave(object sender, MouseEventArgs e)
73        {
74            IsRecording = false;
75            EndPoint = TempPoints[TempPoints.Count - 1];
76            v_x = (StartPoint.X - EndPoint.X) / TempPoints.Count;
77            v_y = (StartPoint.Y - EndPoint.Y) / TempPoints.Count;
78            const_time = 100 / TempPoints.Count;
79            P.Points.Add(EndPoint);
80            timer.Stop();
81            timer.Begin();
82        }

3.調(diào)用js控制scrollbar

Code
1public void ScollBy(double x, double y)
2        {
3            //window.scollBy(x,y);
4            //直接調(diào)用js
5  System.Windows.Browser.HtmlPage.Window.Eval
(string.Format("window.scrollBy({0},{1});",x,y));
6        }
4.測試。

以上就可以完成這樣的一個(gè)功能了。


網(wǎng)站欄目:Silverlight實(shí)現(xiàn)簡單鼠標(biāo)手勢控制頁面滾動(dòng)
URL網(wǎng)址:http://www.5511xx.com/article/dpeogoh.html