Advertisement
Guest User

Untitled

a guest
May 20th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.08 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import ReactDOM from 'react-dom';
  3. import './style.css';
  4.  
  5. class Cursorbutton extends Component {
  6. constructor(props) {
  7. super(props);
  8.  
  9. this.el = document.createElement('div');
  10. }
  11.  
  12. componentDidMount() {
  13. document.body.appendChild(this.el);
  14. }
  15.  
  16. componentWillUnmount() {
  17. document.body.removeChild(this.el);
  18. }
  19.  
  20. render() {
  21. return ReactDOM.createPortal(this.props.children, this.el);
  22. }
  23. }
  24.  
  25. export default class Cursor extends Component {
  26. constructor(props) {
  27. super(props);
  28.  
  29. this.state = {
  30. x: 0,
  31. y: 0,
  32. w: 0,
  33. h: 0,
  34. hasCursor: false,
  35. };
  36. }
  37.  
  38. // componentDidMount() {
  39. // this.element.classList.add('custom-cursor-container');
  40.  
  41. // this.element.addEventListener('mouseenter', this.mouseenterHandler);
  42. // this.element.addEventListener('mouseleave', this.mouseleaveHandler);
  43. // this.element.addEventListener('mousemove', this.mousemoveHandler);
  44. // this.element.addEventListener('mousedown', this.mousedownHandler);
  45. // this.element.addEventListener('mouseup', this.mouseupHandler);
  46. // }
  47.  
  48. // componentWillUnmount() {
  49. // this.element.classList.remove('custom-cursor-container');
  50.  
  51. // this.element.removeEventListener('mouseenter', this.mouseenterHandler);
  52. // this.element.removeEventListener('mouseleave', this.mouseleaveHandler);
  53. // this.element.removeEventListener('mousemove', this.mousemoveHandler);
  54. // this.element.removeEventListener('mousedown', this.mousedownHandler);
  55. // this.element.removeEventListener('mouseup', this.mouseupHandler);
  56. // }
  57.  
  58. mouseenterHandler = (e) => {
  59. this.setState({
  60. hasCursor: true,
  61. });
  62. // this.handle.classList.add('custom-cursor--visible');
  63. };
  64.  
  65. mouseleaveHandler = () => {
  66. this.handle.classList.remove('custom-cursor--visible');
  67. this.setState({
  68. hasCursor: false,
  69. });
  70. };
  71.  
  72. mousemoveHandler = (e) => {
  73. // this.handle.style.transform(
  74. // 'translate(' +
  75. // (event.clientX - cursors[widget.config.selector].width) +
  76. // 'px, ' +
  77. // (event.clientY - cursors[widget.config.selector].height) +
  78. // 'px, 0)',
  79. // );
  80.  
  81. this.setState({
  82. x: e.clientX,
  83. y: e.clientY,
  84. });
  85. console.log(this.state.x);
  86. };
  87.  
  88. mousedownHandler = (e) => {
  89. if (e.which === 1) {
  90. this.handle.classList.add('custom-cursor--active');
  91. }
  92. };
  93.  
  94. mouseupHandler = (e) => {
  95. if (e.which === 1) {
  96. this.handle.classList.remove('custom-cursor--active');
  97. }
  98. };
  99.  
  100. render() {
  101. const { children } = this.props;
  102.  
  103. return (
  104. <div
  105. onMouseOver={this.mouseenterHandler}
  106. // onMouseOut={this.mouseleaveHandler}
  107. ref={(el) => (this.element = el)}
  108. className="cursor"
  109. >
  110. {children}
  111. {this.state.hasCursor && (
  112. <Cursorbutton>
  113. <div className="cursor__handle" />
  114. </Cursorbutton>
  115. )}
  116. </div>
  117. );
  118. }
  119. }
  120.  
  121. // ;(function($) {
  122. // 'use strict';
  123.  
  124. // var defaults = {
  125. // selector: 'custom-cursor-plus'
  126. // };
  127.  
  128. // var cursors = {};
  129.  
  130. // function CustomCursor(element, options) {
  131. // var widget = this;
  132. // widget.config = $.extend(true, {}, defaults, options);
  133. // widget.element = $(element);
  134.  
  135. // if (!$('#' + widget.config.selector).length) {
  136. // $('<div class="custom-cursor '+ widget.config.selector +'" id="'+ widget.config.selector +'" />').appendTo($('body'));
  137. // cursors[widget.config.selector] = {};
  138. // cursors[widget.config.selector].element = $('#' + widget.config.selector);
  139. // cursors[widget.config.selector].width = $('#' + widget.config.selector).width() / 2;
  140. // cursors[widget.config.selector].height = $('#' + widget.config.selector).height() / 2;
  141. // }
  142.  
  143. // $.each(widget.config, function(key, value) {
  144. // if (typeof value === 'function') {
  145. // widget.element.on(key + '.customCursor', function(event, params) {
  146. // return value(event, widget.element, cursors[widget.config.selector], params);
  147. // });
  148. // }
  149. // });
  150.  
  151. // widget.init(widget);
  152. // };
  153.  
  154. // CustomCursor.prototype.init = function(widget) {
  155. // widget.element.addClass('custom-cursor-container');
  156.  
  157. // function windowKeydownHandler(event) {
  158. // if (event.keyCode == 13) {
  159. // cursors[widget.config.selector].element.addClass('custom-cursor--active');
  160. // }
  161. // }
  162.  
  163. // function windowKeyupHandler(event) {
  164. // if (event.keyCode == 13) {
  165. // cursors[widget.config.selector].element.removeClass('custom-cursor--active');
  166. // }
  167. // }
  168.  
  169. // function mouseenterHandler(event) {
  170. // cursors[widget.config.selector].element.addClass('custom-cursor--visible');
  171.  
  172. // $(window).on('keydown', windowKeydownHandler);
  173. // $(window).on('keyup', windowKeyupHandler);
  174. // }
  175.  
  176. // function mouseleaveHandler(event) {
  177. // cursors[widget.config.selector].element.removeClass('custom-cursor--visible');
  178.  
  179. // $(window).off('keydown', windowKeydownHandler);
  180. // $(window).off('keyup', windowKeyupHandler);
  181. // }
  182.  
  183. // function mousemoveHandler(event) {
  184. // cursors[widget.config.selector].element.css('transform', 'translate3d('+ (event.clientX - cursors[widget.config.selector].width) + 'px, '+ (event.clientY - cursors[widget.config.selector].height) +'px, 0)');
  185. // }
  186.  
  187. // function mousedownHandler(event) {
  188. // if (event.which == 1) {
  189. // cursors[widget.config.selector].element.addClass('custom-cursor--active');
  190. // }
  191. // }
  192.  
  193. // function mouseupHandler(event) {
  194. // if (event.which == 1) {
  195. // cursors[widget.config.selector].element.removeClass('custom-cursor--active');
  196. // }
  197. // }
  198.  
  199. // this.element
  200. // .on('mouseenter', mouseenterHandler)
  201. // .on('mouseleave', mouseleaveHandler)
  202. // .on('mousemove', mousemoveHandler)
  203. // .on('mousedown', mousedownHandler)
  204. // .on('mouseup', mouseupHandler);
  205.  
  206. // this.element.trigger('created.customCursor');
  207. // };
  208.  
  209. // $.fn.customCursor = function(options) {
  210. // return this.each(function(index, element) {
  211. // new CustomCursor(this, options);
  212. // });
  213. // };
  214.  
  215. // })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement