1. 程式人生 > >繼承--貌似小米筆試題

繼承--貌似小米筆試題

前些天答小米筆試題,本人由於身體原因,只能在答了一半題之後,棄題而不顧,奔向廁所,現在隱隱回憶起當時的一道題,覺得挺有意思,就拿出來寫寫。

題目要求:實現點選相應按鈕畫圓和方塊,都旋轉,變小。圓和方塊繼承一個主類Draw,每個元素以滑鼠點選的中心為準。 我記不清具體實現什麼效果,但主要是繼承!!!

我在這裡寫一種自己的實現方法。

樣式:

	<style type="text/css">
		*{
			margin:0;
			padding:0;
		}
		button{
			width:300px;
			height:30px;
			line-height: 30px;
			border:0;
			color:white;
			text-align: center;
			display: inline-block;
			position: absolute;
			top:30px;
		}
		#parent{
			width:100%;
			height:500px;
			margin-top: 100px;
			background-color: #ccc;
			position: relative;
		}
		.circle{
			width:100px;
			height:100px;
			background-color: #078600;
			border-radius:50%;
			position: absolute;
			transition:width 2s, height 2s, transform 2s;
		}
		.square{
			width:100px;
			height:100px;
			background-color: #a40004;
			position: absolute;
			transition:width 2s, height 2s, transform 2s; 
		}
	</style>

主體元素:
<body>
	<button style="background:#0acf00; left:300px;">DRAW CIRCLE</button>
	<button style="background:#fd0006; left:800px;">DRAW SQUARE</button>
	<div id="parent"></div>
</body>


js實現繼承及效果:
<script type="text/javascript">
	var buts = document.getElementsByTagName('button');
	var pat = document.getElementById('parent');
</pre><pre name="code" class="javascript">// 建立一個主類,實現建立圓和方塊的方法
	function Draw(){};
	Draw.prototype = {
		constructor : Draw,
// 以event為引數,作為事件源,偵測滑鼠位置,確定div的建立位置。
		createCircle : function(event){
			var circle = document.createElement("div");
			circle.className = "circle";
			circle.style.left = event.clientX - pat.offsetLeft - 50 +"px";
			circle.style.top = event.clientY - pat.offsetTop - 50 +"px";
			return circle;


		},
		createSquare : function(){
			var square = document.createElement("div");
			square.className = "square";
			square.style.left = event.clientX - pat.offsetLeft - 50 +"px";
			square.style.top = event.clientY - pat.offsetTop - 50 +"px";
			return square;
		}


	}
</pre><pre name="code" class="javascript">//  圓和方塊類
	function Circle(){};
	function Square(){};

// 實現繼承
	Circle.prototype = new Draw();
	Square.prototype = new Draw();


	buts[0].onclick = function(){
		this.style.backgroundColor = "#000";
		buts[1].style.backgroundColor = "#fd0006";
		pat.onclick  = function(e){
			var event =  e || window.e;
			var newCircle = new Circle();
			var cc = newCircle.createCircle(event);
			pat.appendChild(cc);
			setTimeout(function(){
				cc.style.width = 10+"px";
				cc.style.height = 10+"px";
				cc.style.transform = "rotateX(360deg)";
			},0);
		}
	}
	buts[1].onclick = function(){
		this.style.backgroundColor = "#000";
		buts[0].style.backgroundColor = "#0acf00";
		pat.onclick  = function(e){
			var event =  e || window.e;
			var newSquare = new Square();
			var ss = newSquare.createSquare(event);
			pat.appendChild(ss);
			setTimeout(function(){
				ss.style.width = 10+"px";
				ss.style.height = 10+"px";
				ss.style.transform = "rotateY(360deg)";
			},0);
		}
	}
</script>

相關推薦

繼承--貌似小米試題

前些天答小米筆試題,本人由於身體原因,只能在答了一半題之後,棄題而不顧,奔向廁所,現在隱隱回憶起當時的一道題,覺得挺有意思,就拿出來寫寫。 題目要求:實現點選相應按鈕畫圓和方塊,都旋轉,變小。圓和方塊繼承一個主類Draw,每個元素以滑鼠點選的中心為準。 我記不清具體實現什麼

小米試題中遇到的關於學生成績查詢的幾個SQL語句

com 語句 關於 -1 sql 技術 筆試 試題 src 數據庫有三個字段,名字、學科、成績,如圖 1、 找出每科成績最高的學生的名字與分數 2、找出總分最高的學生名字與總分 3、找出三科成績均大於80分的學生 小米筆試題中遇到的關於學生成績查詢的幾個SQL語句

小米試題:樹的高度

題目連結:樹的高度 用並查集的方法做的。 這個題不是表述有問題,就是測試資料有問題。題目說了是合法的二叉樹,但是測試資料是有多叉樹的。 要把多餘的樹枝砍掉,就是說如果這個結點出現了第三個孩子,我們就不要去考慮第三個孩子。 並查集的思路就是構造出這麼一棵樹,然後如果出現第三個孩子及以上,把

求出對應N的所有合法匹配括號 (DFS)---小米試題

給定N對括號,輸出其所有的合法的組合狀態,例如,N=3,所有的合法狀態為:"((()))”, “(()())”, “(())()”, “()(())”, “()()()”; 解析: 還是深搜DFS的

小米2018年秋季招聘試題之求“異數”

package Exam1; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main

C++總結6——繼承與多型的試題【轉】

1————————————————— #include <iostream> using namespace std; class Base { public:     Base(int data):_ma(data)       {         co

小米2013年校園招聘試題-簡單並查集

題目描述: 假如已知有n個人和m對好友關係(存於數字r)。如果兩個人是直接或間接的好友(好友的好友的好友...),則認為他們屬於同一個朋友圈,請寫程式求出這n個人裡一共有多少個朋友圈。 假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3}

小米運維部14年校招試題A的個人答案

15年準備實習生面試時答的題,僅供參考一、linux基礎1)linux系統中如何獲取pid為100的程序所監聽的tcp埠,請給出詳細命令?【答】方法一:1netstat -nlg | grep 1950   2[[email protected] pierre]#

C++構造、析構、繼承、多型--一道試題都考到了

#include <stdio.h> class A { public: A() { printf("A constrution.\n"); }

2016小米校招試題

1 給定一些線段,線段有起點和終點,求這些線段的覆蓋長度,重複的部分只計算一次。 方法一: 首先說排序對於處理很多問題都是非常有效的,例如尋找兄弟單詞等問題中,經過排序處理後,問題就明朗了很多; 線段覆蓋長度也是這樣,將線段排序後,然後掃描一遍就可以得到覆蓋的長度。

Java多執行緒方面的程式設計試題(通過繼承Thread類啟動執行緒)

/*  * 寫兩個執行緒,一個執行緒列印 1~52,另一個執行緒列印字母A-Z。列印順序為12A34B56C……5152Z。要求用執行緒間的通訊。  * 注:分別給兩個物件構造一個物件o,數字每列印兩

小米校招試題(java)

時間限制:C/C++語言 1000MS;其他語言 3000MS  記憶體限制:C/C++語言 65536KB;其他語言 589824KB  題目描述:  給定一個句子(只包含字母和空格), 將句子中的單詞位置反轉,單詞用空格分割, 單詞之間只有一個空格,前後沒有空格。 

小米實習生試題Java程式碼

題目描述 風口之下,豬都能飛。當今中國股市牛市,真可謂“錯過等七年”。 給你一個回顧歷史的機會,已知一支股票連續n天的價格走勢,以長度為n的整數陣列表示,陣列中第i個元素(prices[i])代表該股票第i天的股價。 假設你一開始沒有股票,但有至多兩次買入

C++總結6——繼承與多型的試題

1————————————————— #include <iostream> using namespace std; class Base { public: Base(int data):_ma(data) {

Python求解啤酒問題(攜程2016試題

sep 走了 參考資料 很難 bucket static turn and item 問題描述:一位酒商共有5桶葡萄酒和1桶啤酒,6個桶的容量分別為30升、32升、36升、38升、40升和62升,並且只賣整桶酒,不零賣。第一位顧客買走了2整桶葡萄酒,第二位顧客買走的葡萄酒是

新浪PHP開發工程師面試試題

新浪筆試面試 php面試筆試 找實習找的心累,於是在學校bbs上找了一個新浪的散招。先做了一份筆試題,題目如下。1、列舉一下你知道的Unix信號,並說明其用途2、給你一個ip地址,寫出其無符號32位的表示法3、給你一些http的東西post請求,數據,cookie,URL,寫一個http頭。4、簡述一

PHP工程師試題

extend xtend log new 筆試題 clas col 繼承 null //已經定義以下php類 class People{ static $version = "1.02beta"; private $age; public

試題---消除多余的空格

試題 技術分享 har () 去除 space span col mes 筆試題目: 假設輸入一個字符串" lan zhihui is a good boy! ",如今須要去除字符串首位的空格。每一個單詞之間留一個空格,即返回

華宇軟件試題

edi 缺點 redirect forward 學生 二叉樹 war 金字塔 答題 一、基礎問答題 1、forward和sendRedirect 2、列舉jvm五個經常使用參數 3、表主鍵的定義策略及優缺點 二、編程基礎題 1、二叉樹遍歷(程序補全) 2、sql(常見的

阿裏試題:求兩個子序列的最大連續子序列

代碼 else nat 順序 post string popu substr 連續 原題例如以下: 給定一個query和一個text。均由小寫字母組成。要求在text中找出以相同的順序連續出如今query中的最長連續字母序列的長度。比如。query為 "acbac",t