我知道如何拖动视图或对象:
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [[event allTouches] anyObject];
if( [touch view] == ViewMain)
{
CGPoint location = [touch locationInView:self.view];
ViewMain.center = location;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我想从触摸它的那一点开始拖动那个视图或图像.例如,如果我拖动(我突出显示视图并在光标上放置蓝色):

我开始拖动的那一刻,如果我将鼠标向右拖动20 px然后我希望视图也拖动20 px而不是:

也许我必须将视图的中心更改为我触摸它的点.我怎么能这样做?
换句话说,我想在iPad上拖动应用程序时做一些事情:

我正在使用AjaxControlToolKit 4.0(ASP.NET 4.0)的ModalPopupExtender,每一件工作都很好,当我拖动ModalPopup它正在拖动,但问题是它正在回弹到其原始位置(中心).相同的代码正在开发:http: //www.asp.net/AjaxLibrary/AjaxControlToolkitSampleSite/ModalPopup/ModalPopup.aspx
我已经搜索过这个问题,但是所有的解决方案都是使用外部Java脚本代码给出的,但是当代码在ASP.NET示例页面上工作时,跟随代码可能会出错.(从我复制相同代码的地方)
这是我的代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="AjaxToolKitTest4.WebForm3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Hello</title>
<link href="style.css" rel="stylesheet" />
</head>
<body>
<form id="form1" runat="server">
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></ajaxToolkit:ToolkitScriptManager>
<div>
<%--Start LinkButton to Show Modal Popup Form--%>
<asp:LinkButton ID="lnkAddForm" Text="Insert" runat="server" OnClick="lnkAddForm_Click"></asp:LinkButton>
<%--End LinkButton to Show Modal Popup Form--%>
<%--Start Panel for Modal Popup Form--%>
<asp:Panel ID="programmaticPopup" runat="server" CssClass="modalPopup" Style="display: none; width: 350px; padding: 10px;">
<asp:Panel runat="Server" ID="programmaticPopupDragHandle" Style="cursor: …Run Code Online (Sandbox Code Playgroud) 我正在使用 Angular 7“拖放”的新功能,我遵循了官方文档上的所有步骤:https : //material.angular.io/cdk/drag-drop/overview
但我收到此错误:**
未捕获的错误:模板解析错误:'cdk-drop' 不是已知元素: 1. 如果 'cdk-drop' 是一个 Angular 组件,则验证它是否是该模块的一部分。2. 如果'cdk-drop' 是一个Web 组件,则将'CUSTOM_ELEMENTS_SCHEMA' 添加到该组件的'@NgModule.schemas' 以抑制此消息。
**
这是我的 app.component.html 代码:
<cdk-drop cdkDropList class="example-list" (cdkDropListDropped)="drop($event)">
<div class="example-box" *ngFor="let movie of movies" cdkDrag>{{movie}}
</div>
</cdk-drop>
Run Code Online (Sandbox Code Playgroud)
这是我的 app.component.ts 代码:
import { Component } from '@angular/core';
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
movies = [
'Episode I - The Phantom Menace',
'Episode II - Attack of the …Run Code Online (Sandbox Code Playgroud) 我是一名初级开发人员,正在努力解决页面顶部有大约 10 张卡片的轮播的问题。所有卡片无法同时显示在屏幕上,因此角落有 2 个箭头可滚动它们(向左箭头和向右箭头)。当您单击向右箭头时,卡片会滚动到末尾,当您单击向左箭头时,卡片会从右向左向后移动。
我怎样才能使当您单击鼠标并按住图像并拖动它们时它们向左或向右移动?我不仅需要通过单击箭头来移动它们,还需要通过鼠标拖动来移动它们...我是否需要使用一些库(我找到了react-hammerjs,但没有找到任何好的文档/示例如何使用它)?预先感谢您的帮助
这里有一些代码可供参考:
export const CardsBlock = () => {
const scrollContainer = useRef(null)
const [scrolled, setScrolled] = useState(false)
const dispatch = useDispatch()
useEffect(() => {
const resizeListener = (e) => {
if (e.target.outerWidth <= sizes.mobile) {
setScrolled(null)
} else {
setScrolled(false)
}
}
window.addEventListener('resize', resizeListener)
return () => {
window.removeEventListener('resize', resizeListener)
}
}, [])
useEffect(() => {
if (scrolled) {
scrollTo(scrollContainer.current, scrollContainer.current.offsetWidth)
} else {
scrollTo(scrollContainer.current, 0)
}
}, [scrolled])
return (
<Well>
<Container>
<Wrapper …Run Code Online (Sandbox Code Playgroud) I\xe2\x80\x99m 在具有圆角的视图上使用 .onDrag 修改器:
\nstruct RootView: View {\n \n @State var dragging: Bool = false\n \n var body: some View {\n VStack {\n Color.red.cornerRadius(32)\n .frame(width: 300, height: 300)\n .onDrag {\n dragging = true\n return NSItemProvider(object: NSString())\n }\n }.frame(maxWidth: .infinity, maxHeight: .infinity)\n .background(.green)\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n问题是,当我调用拖动时 - 由于系统应用了自动阴影效果 - 它并不感觉像我自己拖动卡一样。见下文。
\n\n有没有什么方法可以让卡片看起来是用透明背景拖动的,而不是在它上面放置的任何背景颜色之上?
\n我一直在寻找一段简短的、可重用的代码,它允许在 SwiftUI 中缩放和拖动任何视图,并且还可以独立更改比例。
当我使用AWTUtilities.setWindowOpaque(this, false);JFrames的背景透明时,您可以通过将其拖动到窗口中的任何位置来更改我的JFrame的位置.我的问题是,我有想要用于拖放这个Frame的对象,但是当我试图拖动一个对象时JFrame移动它不可能在其他任何地方丢弃它.有什么方法可以解决这个问题吗?
顺便说一句,我使用Mac OS 10.6.6在Mac上
谢谢你的帮助!
我不得不创建一个方形(400dp高度和400dp宽度)的弹出窗口.现在,当我点击位于弹出窗口左上角的按钮时,我想拖动它.我在放置在弹出窗口上的布局上设置onTouch(),这是我用来拖动它的代码:
@Override
public boolean onTouch(View v, MotionEvent event) {
int eventAction = event.getAction();
switch (eventAction) {
case MotionEvent.ACTION_MOVE: // Drag event
xRow = (int) event.getRawX() - rootView.getWidth();
yRow = (int) event.getRawY() - rootView.getHeight();
/* Updates the position of the popup on the screen */
update(xRow, yRow, -1, -1);
break;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
问题是,这似乎仅适用于Nexus 7.在10英寸的平板电脑上,它无法正常工作.当我将它拖到较大的平板电脑上时,我的手指和弹出窗口之间有一个空格.所以我假设我使用的测量单位不正确.我试过使用度量标准但没有成功.谁能帮我?
我想实现地图的拖动效果.当我们拖动地图时,标记应显示当前位置或纬度和经度.它在Uber应用程序中完成,见下文:
在此标记中显示拖动地图时的当前位置.我怎么能实现这个???
ChooseFromMapActivity
public class ChooseFromMapActivity extends AppCompatActivity implements GoogleMap.OnCameraChangeListener {
TextView textShowAddress;
private GoogleMap mMap;
LatLng latLng;
double latitude = 17.385044;
double longitude = 78.486671;
float zoom;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose_from_map);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mMap = mapFragment.getMap();
mMap.setMyLocationEnabled(true);
LatLng center = mMap.getCameraPosition().target;
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.getUiSettings().setRotateGesturesEnabled(true);
mMap.getUiSettings().setScrollGesturesEnabled(true);
latLng = new LatLng(-34, 151);
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
textShowAddress = (TextView) findViewById(R.id.textShowAddress);
mMap.addMarker(new MarkerOptions()
.position(latLng)
.draggable(false)
.title("sent location :)"))
.setDraggable(false);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我试图控制 - 将故事板中的对象拖到ViewController.swift中,但没有任何工作.我试过滑块,按钮,开关,采摘器,一切.我需要快速完成这个应用程序,所以请帮忙!
对于包含 d3-drag 拖动功能的 d3 force 布局,似乎每个拖动事件调用的函数都修改d.fx/ d.fy,例如:
function dragged(d) {
d.fx = d3.event.x;
d.fy = d3.event.y;
}
Run Code Online (Sandbox Code Playgroud)
拖动开始事件通常基于d.fx/d.fy在d.x/d.y而结束事件设置d.fx/d.fy到null。
d.fx/d.fy来自哪里以及为什么它会用于被拖动的元素?这是否以某种方式内置于 d3 或 d3-force 中?它在哪里分配给被拖动的元素?
我找到了一个简单的 Codepen,它允许我拖动和滚动带有图像的画廊。它工作正常,但我需要一种方法来向此功能添加“平滑抓取/滚动”。基本上我想在 iPhone 上模拟滚动。
有人可以帮我吗。我是 Javascript 的初学者。这是代码的链接:Horizontal Click and Drag Scrolling with JS
const slider = document.querySelector('.items');
let isDown = false;
let startX;
let scrollLeft;
slider.addEventListener('mousedown', (e) => {
isDown = true;
slider.classList.add('active');
startX = e.pageX - slider.offsetLeft;
scrollLeft = slider.scrollLeft;
});
slider.addEventListener('mouseleave', () => {
isDown = false;
slider.classList.remove('active');
});
slider.addEventListener('mouseup', () => {
isDown = false;
slider.classList.remove('active');
});
slider.addEventListener('mousemove', (e) => {
if(!isDown) return;
e.preventDefault();
const x = e.pageX - slider.offsetLeft;
const walk = (x - startX) …Run Code Online (Sandbox Code Playgroud) 编辑:总体问题:对于布局复杂的页面,使用顶部/左侧动画拖动速度很慢。
我正在使用大量 CSS 的页面上实现拖放功能。当我去测试它时,“克隆” dom 对象的拖动非常缓慢,所以我开始弄清楚为什么会这样。我知道它与布局有关,所以经过几个小时的挖掘,我发现这是浏览器对克隆拖动对象的渲染缓慢而不是 javascript 计算。
我相信它之所以慢的原因是,因为布局非常复杂,每次拖动时顶部和左侧发生变化时,浏览器都需要更长的时间来呈现拖动对象。(这只是猜测。如果我错了,请纠正我)
我试过使用 CSS 变换和边距,但两者的渲染速度仍然很慢。我的问题是,有没有什么办法可以让拖拽效果以某种方式让浏览器在复杂的布局中更快地计算布局。
PS 我知道这是一个 CSS 问题,因为当我删除一个核心 .css 文件时,拖放很好。
可以拖动的项目的 Div。
<div class="pane pane-l pane-25">
<div class="sticky sticky-nav arrow_box">
<div id="accordion" class="s-accordion">
<h3>Choose Layout</h3>
<div>
<ul class="panel-nav panel-nav-layout">
<li><a href="" class="s-draggable"><img src="" width="45" height="45"><span>A</span></a></li>
<li><a href="" class="s-draggable"><img src="" width="45" height="45"><span>B</span></a></li>
<li><a href="" class="s-draggable"><img src="" width="45" height="45"><span>C</span></a></li>
<li><a href="" class="s-draggable"><img src="" width="45" height="45"><span>D</span></a></li>
<li><a href="" class="s-draggable"><img src="" width="45" height="45"><span>E</span></a></li>
<li><a href="" class="s-draggable"><img src="" width="45" height="45"><span>F</span></a></li>
<li><a href="" class="s-draggable"><img src="" width="45" height="45"><span>G</span></a></li> …Run Code Online (Sandbox Code Playgroud) drag ×13
javascript ×5
android ×2
ios ×2
java ×2
swift ×2
swiftui ×2
xcode ×2
angular ×1
angular7 ×1
asp.net-4.0 ×1
carousel ×1
controls ×1
css ×1
d3.js ×1
dimension ×1
draggable ×1
gesture ×1
html ×1
ipad ×1
iphone ×1
macos ×1
marker ×1
objective-c ×1
pinch ×1
popupwindow ×1
reactjs ×1
scroll ×1
swipe ×1
transparency ×1
uikit ×1